reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaDeclCXX.cpp
 6293   if (!Record)
 6296   if (Record->isAbstract() && !Record->isInvalidDecl()) {
 6296   if (Record->isAbstract() && !Record->isInvalidDecl()) {
 6297     AbstractUsageInfo Info(*this, Record);
 6298     CheckAbstractClassUsage(Info, Record);
 6304   if (!Record->isInvalidDecl() && !Record->isDependentType() &&
 6304   if (!Record->isInvalidDecl() && !Record->isDependentType() &&
 6305       !Record->isAggregate() && !Record->hasUserDeclaredConstructor() &&
 6305       !Record->isAggregate() && !Record->hasUserDeclaredConstructor() &&
 6306       !Record->isLambda()) {
 6308     for (const auto *F : Record->fields()) {
 6315           Diag(Record->getLocation(), diag::warn_no_constructor_for_refconst)
 6316             << Record->getTagKind() << Record;
 6316             << Record->getTagKind() << Record;
 6327   if (Record->getIdentifier()) {
 6336     DeclContext::lookup_result R = Record->lookup(Record->getDeclName());
 6336     DeclContext::lookup_result R = Record->lookup(Record->getDeclName());
 6341            Record->hasUserDeclaredConstructor()) ||
 6351   if (Record->isPolymorphic() && !Record->isDependentType()) {
 6351   if (Record->isPolymorphic() && !Record->isDependentType()) {
 6352     CXXDestructorDecl *dtor = Record->getDestructor();
 6354         !Record->hasAttr<FinalAttr>())
 6355       Diag(dtor ? dtor->getLocation() : Record->getLocation(),
 6356            diag::warn_non_virtual_dtor) << Context.getRecordType(Record);
 6359   if (Record->isAbstract()) {
 6360     if (FinalAttr *FA = Record->getAttr<FinalAttr>()) {
 6361       Diag(Record->getLocation(), diag::warn_abstract_final_class)
 6363       DiagnoseAbstractType(Record);
 6368   if (!Record->hasAttr<FinalAttr>()) {
 6369     if (const CXXDestructorDecl *dtor = Record->getDestructor()) {
 6374                    getLocForEndOfToken(Record->getLocation()),
 6376         Diag(Record->getLocation(),
 6378             << Context.getRecordType(Record) << FA->isSpelledAsSealed();
 6384   if (Record->hasAttr<TrivialABIAttr>())
 6385     checkIllFormedTrivialABIStruct(*Record);
 6389   bool HasTrivialABI = Record->hasAttr<TrivialABIAttr>();
 6392     Record->setHasTrivialSpecialMemberForCall();
 6406         Record->finishedDefaultedOrDeletedMember(M);
 6410         Record->setTrivialForCallFlags(M);
 6419       Record->setTrivialForCallFlags(M);
 6445   if (!Record->isDependentType()) {
 6451     if (CXXDestructorDecl *Dtor = Record->getDestructor())
 6454     for (auto *M : Record->methods()) {
 6473     for (auto *M : Record->methods())
 6478   if (!Record->isDependentType()) {
 6479     for (FriendDecl *D : Record->friends()) {
 6495   if (Record->isMsStruct(Context) &&
 6496       (Record->isPolymorphic() || Record->getNumBases())) {
 6496       (Record->isPolymorphic() || Record->getNumBases())) {
 6497     Diag(Record->getLocation(), diag::warn_cxx_ms_struct);
 6500   checkClassLevelDLLAttribute(Record);
 6501   checkClassLevelCodeSegAttribute(Record);
 6507   bool CanPass = canPassInRegisters(*this, Record, CCK);
 6511   if (Record->getArgPassingRestrictions() != RecordDecl::APK_CanNeverPassInRegs)
 6512     Record->setArgPassingRestrictions(CanPass
 6521     Record->setParamDestroyedInCallee(true);
 6522   else if (Record->hasNonTrivialDestructor())
 6523     Record->setParamDestroyedInCallee(CanPass);
 6528     MarkVTableUsed(Record->getInnerLocStart(), Record);
 6528     MarkVTableUsed(Record->getInnerLocStart(), Record);