reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
8211 if (RD->isLambda() && !getLangOpts().CPlusPlus17) { 8212 Diag(RD->getLocation(), diag::note_non_literal_lambda); 8220 if (RD->getNumVBases()) { 8221 Diag(RD->getLocation(), diag::note_non_literal_virtual_base) 8222 << getLiteralDiagFromTagKind(RD->getTagKind()) << RD->getNumVBases(); 8222 << getLiteralDiagFromTagKind(RD->getTagKind()) << RD->getNumVBases(); 8223 for (const auto &I : RD->vbases()) 8226 } else if (!RD->isAggregate() && !RD->hasConstexprNonCopyMoveConstructor() && 8226 } else if (!RD->isAggregate() && !RD->hasConstexprNonCopyMoveConstructor() && 8227 !RD->hasTrivialDefaultConstructor()) { 8228 Diag(RD->getLocation(), diag::note_non_literal_no_constexpr_ctors) << RD; 8228 Diag(RD->getLocation(), diag::note_non_literal_no_constexpr_ctors) << RD; 8229 } else if (RD->hasNonLiteralTypeFieldsOrBases()) { 8230 for (const auto &I : RD->bases()) { 8233 << RD << I.getType() << I.getSourceRange(); 8237 for (const auto *I : RD->fields()) { 8241 << RD << I << I->getType() 8246 } else if (getLangOpts().CPlusPlus2a ? !RD->hasConstexprDestructor() 8247 : !RD->hasTrivialDestructor()) { 8251 CXXDestructorDecl *Dtor = RD->getDestructor(); 8258 << RD; 8263 << RD;