Home | History | Annotate | Download | only in Sema

Lines Matching defs:Destructor

51   // destructor name; see core issues 399 and 555. Issue 399 in
52 // particular shows where the current description of destructor name
75 // pseudo-destructor-expression or a member access expression, and
86 // If a pseudo-destructor-name (5.2.4) contains a nested-name-specifier,
183 // this is the destructor for that class.
277 && "only get destructor types from declspecs");
631 // If the class has a destructor, we must be able to call it.
635 CXXDestructorDecl *Destructor = LookupDestructor(RD);
636 if (!Destructor)
639 MarkFunctionReferenced(E->getExprLoc(), Destructor);
640 CheckDestructorAccess(E->getExprLoc(), Destructor,
642 DiagnoseUseOfDecl(Destructor, E->getExprLoc());
1390 // access and ambiguity control are done for the destructor.
2166 // deleted and the static type shall have a virtual destructor or the
2204 // Check access and ambiguity of operator delete and destructor.
3128 // type (or array thereof) with a trivial destructor
3265 // If type is a class type with a virtual destructor ([class.dtor])
3268 if (CXXDestructorDecl *Destructor = Self.LookupDestructor(RD))
3269 Destructor->isVirtual();
4720 CXXDestructorDecl *Destructor = IsDecltype ? 0 : LookupDestructor(RD);
4722 if (Destructor) {
4723 MarkFunctionReferenced(E->getExprLoc(), Destructor);
4724 CheckDestructorAccess(E->getExprLoc(), Destructor,
4727 DiagnoseUseOfDecl(Destructor, E->getExprLoc());
4729 // If destructor is trivial, we can avoid the extra copy.
4730 if (Destructor->isTrivial())
4737 CXXTemporary *Temp = CXXTemporary::Create(Context, Destructor);
4875 CXXDestructorDecl *Destructor = LookupDestructor(RD);
4876 Temp->setDestructor(Destructor);
4878 MarkFunctionReferenced(Bind->getExprLoc(), Destructor);
4879 CheckDestructorAccess(Bind->getExprLoc(), Destructor,
4882 DiagnoseUseOfDecl(Destructor, Bind->getExprLoc());
4960 // This also indicates that we could be parsing a pseudo-destructor-name.
4961 // Note that Objective-C class and object types can be pseudo-destructor
5064 // designated by the pseudo-destructor-name shall be the same type.
5102 // [...] Furthermore, the two type-names in a pseudo-destructor-name of the
5149 "Invalid first type name in pseudo-destructor");
5152 "Invalid second type name in pseudo-destructor");