Lines Matching refs:Destructor
49 // destructor name; see core issues 399 and 555. Issue 399 in
50 // particular shows where the current description of destructor name
73 // pseudo-destructor-expression or a member access expression, and
84 // If a pseudo-destructor-name (5.2.4) contains a nested-name-specifier,
181 // this is the destructor for that class.
275 && "only get destructor types from declspecs");
640 // If the class has a destructor, we must be able to call it.
644 CXXDestructorDecl *Destructor = LookupDestructor(RD);
645 if (!Destructor)
648 MarkFunctionReferenced(E->getExprLoc(), Destructor);
649 CheckDestructorAccess(E->getExprLoc(), Destructor,
651 DiagnoseUseOfDecl(Destructor, E->getExprLoc());
1365 // access and ambiguity control are done for the destructor.
2145 // deleted and the static type shall have a virtual destructor or the
2187 // Check access and ambiguity of operator delete and destructor.
3087 // type (or array thereof) with a trivial destructor
3232 // If type is a class type with a virtual destructor ([class.dtor])
3236 if (CXXDestructorDecl *Destructor = Self.LookupDestructor(RD))
3237 return Destructor->isVirtual();
4586 CXXDestructorDecl *Destructor = IsDecltype ? 0 : LookupDestructor(RD);
4588 if (Destructor) {
4589 MarkFunctionReferenced(E->getExprLoc(), Destructor);
4590 CheckDestructorAccess(E->getExprLoc(), Destructor,
4593 DiagnoseUseOfDecl(Destructor, E->getExprLoc());
4595 // If destructor is trivial, we can avoid the extra copy.
4596 if (Destructor->isTrivial())
4603 CXXTemporary *Temp = CXXTemporary::Create(Context, Destructor);
4733 CXXDestructorDecl *Destructor = LookupDestructor(RD);
4734 Temp->setDestructor(Destructor);
4736 MarkFunctionReferenced(E->getExprLoc(), Destructor);
4737 CheckDestructorAccess(E->getExprLoc(), Destructor,
4740 DiagnoseUseOfDecl(Destructor, E->getExprLoc());
4818 // This also indicates that we could be parsing a pseudo-destructor-name.
4819 // Note that Objective-C class and object types can be pseudo-destructor
4922 destructor-name shall be the same type.
4960 // [...] Furthermore, the two type-names in a pseudo-destructor-name of the
5007 "Invalid first type name in pseudo-destructor");
5010 "Invalid second type name in pseudo-destructor");