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

References

tools/clang/include/clang/AST/DeclCXX.h
  556     return data().Polymorphic || data().NumVBases != 0;
  556     return data().Polymorphic || data().NumVBases != 0;
  571   void setIsParsingBaseSpecifiers() { data().IsParsingBaseSpecifiers = true; }
  574     return data().IsParsingBaseSpecifiers;
  583   unsigned getNumBases() const { return data().NumBases; }
  596   base_class_iterator bases_begin() { return data().getBases(); }
  597   base_class_const_iterator bases_begin() const { return data().getBases(); }
  598   base_class_iterator bases_end() { return bases_begin() + data().NumBases; }
  600     return bases_begin() + data().NumBases;
  604   unsigned getNumVBases() const { return data().NumVBases; }
  613   base_class_iterator vbases_begin() { return data().getVBases(); }
  614   base_class_const_iterator vbases_begin() const { return data().getVBases(); }
  615   base_class_iterator vbases_end() { return vbases_begin() + data().NumVBases; }
  617     return vbases_begin() + data().NumVBases;
  673     return data().FirstFriend.isValid();
  680             (data().DeclaredSpecialMembers & SMF_CopyConstructor)) &&
  682     return data().DefaultedCopyConstructorIsDeleted;
  689             (data().DeclaredSpecialMembers & SMF_MoveConstructor)) &&
  691     return data().DefaultedMoveConstructorIsDeleted;
  697             (data().DeclaredSpecialMembers & SMF_Destructor)) &&
  699     return data().DefaultedDestructorIsDeleted;
  706            !data().DefaultedCopyConstructorIsDeleted;
  713            !data().DefaultedMoveConstructorIsDeleted;
  720            !data().DefaultedMoveAssignmentIsDeleted;
  727            !data().DefaultedDestructorIsDeleted;
  732     return (data().DeclaredSpecialMembers & SMF_DefaultConstructor) ||
  741     return !data().UserDeclaredConstructor &&
  742            !(data().DeclaredSpecialMembers & SMF_DefaultConstructor) &&
  750     return data().UserDeclaredConstructor;
  756     return data().UserProvidedDefaultConstructor;
  763     return data().UserDeclaredSpecialMembers & SMF_CopyConstructor;
  769     return !(data().DeclaredSpecialMembers & SMF_CopyConstructor);
  781     if (data().UserDeclaredSpecialMembers &
  784     return data().NeedOverloadResolutionForCopyConstructor;
  790     return data().ImplicitCopyConstructorCanHaveConstParamForNonVBase &&
  792             data().ImplicitCopyConstructorCanHaveConstParamForVBase);
  798     return data().HasDeclaredCopyConstructorWithConstParam ||
  809     return data().UserDeclaredSpecialMembers &
  816     return data().UserDeclaredSpecialMembers & SMF_MoveConstructor;
  821     return (data().DeclaredSpecialMembers & SMF_MoveConstructor) ||
  828     assert((data().DefaultedCopyConstructorIsDeleted ||
  831     data().DefaultedCopyConstructorIsDeleted = true;
  837     assert((data().DefaultedMoveConstructorIsDeleted ||
  840     data().DefaultedMoveConstructorIsDeleted = true;
  846     assert((data().DefaultedDestructorIsDeleted ||
  849     data().DefaultedDestructorIsDeleted = true;
  855     return !(data().DeclaredSpecialMembers & SMF_MoveConstructor) &&
  865     return data().NeedOverloadResolutionForMoveConstructor;
  873     return data().UserDeclaredSpecialMembers & SMF_CopyAssignment;
  879     return !(data().DeclaredSpecialMembers & SMF_CopyAssignment);
  885     return data().HasMutableFields;
  891     return data().ImplicitCopyAssignmentHasConstParam;
  898     return data().HasDeclaredCopyAssignmentWithConstParam ||
  906     return data().UserDeclaredSpecialMembers & SMF_MoveAssignment;
  911     return (data().DeclaredSpecialMembers & SMF_MoveAssignment) ||
  918     assert((data().DefaultedMoveAssignmentIsDeleted ||
  921     data().DefaultedMoveAssignmentIsDeleted = true;
  928     return !(data().DeclaredSpecialMembers & SMF_MoveAssignment) &&
  939     return data().NeedOverloadResolutionForMoveAssignment;
  946     return data().UserDeclaredSpecialMembers & SMF_Destructor;
  952     return !(data().DeclaredSpecialMembers & SMF_Destructor);
  958     return data().NeedOverloadResolutionForDestructor;
 1037     return data().Conversions.get(getASTContext()).begin();
 1041     return data().Conversions.get(getASTContext()).end();
 1057   bool isAggregate() const { return data().Aggregate; }
 1062   bool hasInClassInitializer() const { return data().HasInClassInitializer; }
 1074            data().HasUninitializedReferenceMember;
 1085   bool isPOD() const { return data().PlainOldData; }
 1100   bool isEmpty() const { return data().Empty; }
 1103     return data().HasPrivateFields;
 1107     return data().HasProtectedFields;
 1112     auto &D = data();
 1118   bool isPolymorphic() const { return data().Polymorphic; }
 1125   bool isAbstract() const { return data().Abstract; }
 1129   bool isStandardLayout() const { return data().IsStandardLayout; }
 1133   bool isCXX11StandardLayout() const { return data().IsCXX11StandardLayout; }
 1137   bool hasMutableFields() const { return data().HasMutableFields; }
 1140   bool hasVariantMembers() const { return data().HasVariantMembers; }
 1146            (data().HasTrivialSpecialMembers & SMF_DefaultConstructor);
 1152     return (data().DeclaredNonTrivialSpecialMembers & SMF_DefaultConstructor) ||
 1154             !(data().HasTrivialSpecialMembers & SMF_DefaultConstructor));
 1160     return data().HasConstexprNonCopyMoveConstructor ||
 1168     return data().DefaultedDefaultConstructorIsConstexpr &&
 1175     return data().HasConstexprDefaultConstructor ||
 1183     return data().HasTrivialSpecialMembers & SMF_CopyConstructor;
 1187     return data().HasTrivialSpecialMembersForCall & SMF_CopyConstructor;
 1193     return data().DeclaredNonTrivialSpecialMembers & SMF_CopyConstructor ||
 1198     return (data().DeclaredNonTrivialSpecialMembersForCall &
 1207            (data().HasTrivialSpecialMembers & SMF_MoveConstructor);
 1212            (data().HasTrivialSpecialMembersForCall & SMF_MoveConstructor);
 1218     return (data().DeclaredNonTrivialSpecialMembers & SMF_MoveConstructor) ||
 1220             !(data().HasTrivialSpecialMembers & SMF_MoveConstructor));
 1224     return (data().DeclaredNonTrivialSpecialMembersForCall &
 1227             !(data().HasTrivialSpecialMembersForCall & SMF_MoveConstructor));
 1233     return data().HasTrivialSpecialMembers & SMF_CopyAssignment;
 1239     return data().DeclaredNonTrivialSpecialMembers & SMF_CopyAssignment ||
 1247            (data().HasTrivialSpecialMembers & SMF_MoveAssignment);
 1253     return (data().DeclaredNonTrivialSpecialMembers & SMF_MoveAssignment) ||
 1255             !(data().HasTrivialSpecialMembers & SMF_MoveAssignment));
 1261     return data().DefaultedDestructorIsConstexpr &&
 1271     return data().HasTrivialSpecialMembers & SMF_Destructor;
 1275     return data().HasTrivialSpecialMembersForCall & SMF_Destructor;
 1281     return !(data().HasTrivialSpecialMembers & SMF_Destructor);
 1285     return !(data().HasTrivialSpecialMembersForCall & SMF_Destructor);
 1289     data().HasTrivialSpecialMembersForCall =
 1296     return !data().HasUninitializedFields ||
 1297            !(data().HasDefaultedDefaultConstructor ||
 1307     return data().HasIrrelevantDestructor;
 1313     return data().HasNonLiteralTypeFieldsOrBases;
 1319     return data().HasInheritedConstructor;
 1325     return data().HasInheritedAssignment;
tools/clang/include/clang/AST/DeclFriend.h
  253   FD->NextFriend = data().FirstFriend;
  254   data().FirstFriend = FD;
tools/clang/lib/AST/ASTImporter.cpp
 1837     struct CXXRecordDecl::DefinitionData &ToData = ToCXX->data();
 1838     struct CXXRecordDecl::DefinitionData &FromData = FromCXX->data();
tools/clang/lib/AST/DeclCXX.cpp
  190   if (!data().Bases.isOffset() && data().NumBases > 0)
  190   if (!data().Bases.isOffset() && data().NumBases > 0)
  191     C.Deallocate(data().getBases());
  197       data().Aggregate = false;
  202     data().PlainOldData = false;
  211   data().Bases = new(C) CXXBaseSpecifier [NumBases];
  212   data().NumBases = NumBases;
  214     data().getBases()[i] = *Bases[i];
  229     if (BaseClassDecl->data().HasBasesWithFields ||
  231       if (data().HasBasesWithFields)
  233         data().IsStandardLayout = false;
  234       data().HasBasesWithFields = true;
  241     if (BaseClassDecl->data().HasBasesWithNonStaticDataMembers ||
  243       if (data().HasBasesWithNonStaticDataMembers)
  244         data().IsCXX11StandardLayout = false;
  245       data().HasBasesWithNonStaticDataMembers = true;
  252       data().Empty = false;
  258       data().Aggregate = false;
  264       data().Polymorphic = true;
  267       data().Aggregate = false;
  274       data().IsStandardLayout = false;
  276       data().IsCXX11StandardLayout = false;
  280       data().HasNonLiteralTypeFieldsOrBases = true;
  295             data().ImplicitCopyConstructorCanHaveConstParamForVBase = false;
  299         data().Aggregate = false;
  311       data().Empty = false;
  315       data().Aggregate = false;
  321       data().HasTrivialSpecialMembers &= SMF_Destructor;
  322       data().HasTrivialSpecialMembersForCall &= SMF_Destructor;
  327       data().IsStandardLayout = false;
  328       data().IsCXX11StandardLayout = false;
  334       data().DefaultedDefaultConstructorIsConstexpr = false;
  335       data().DefaultedDestructorIsConstexpr = false;
  343         data().ImplicitCopyConstructorCanHaveConstParamForVBase = false;
  350         data().HasTrivialSpecialMembers &= ~SMF_DefaultConstructor;
  358         data().HasTrivialSpecialMembers &= ~SMF_CopyConstructor;
  361         data().HasTrivialSpecialMembersForCall &= ~SMF_CopyConstructor;
  368         data().HasTrivialSpecialMembers &= ~SMF_MoveConstructor;
  371         data().HasTrivialSpecialMembersForCall &= ~SMF_MoveConstructor;
  379         data().HasTrivialSpecialMembers &= ~SMF_CopyAssignment;
  385         data().HasTrivialSpecialMembers &= ~SMF_MoveAssignment;
  392         data().DefaultedDefaultConstructorIsConstexpr = false;
  400         data().ImplicitCopyConstructorCanHaveConstParamForNonVBase = false;
  407       data().HasTrivialSpecialMembers &= ~SMF_Destructor;
  410       data().HasTrivialSpecialMembersForCall &= ~SMF_Destructor;
  413       data().HasIrrelevantDestructor = false;
  421       data().ImplicitCopyAssignmentHasConstParam = false;
  437       data().HasMutableFields = true;
  438       data().NeedOverloadResolutionForCopyConstructor = true;
  442       data().HasUninitializedReferenceMember = true;
  445       data().HasUninitializedFields = true;
  457   if (data().IsStandardLayout && NumBases > 1 && hasRepeatedBaseClass(this))
  458     data().IsStandardLayout = false;
  461     data().IsParsingBaseSpecifiers = false;
  466   data().VBases = new (C) CXXBaseSpecifier[VBases.size()];
  467   data().NumVBases = VBases.size();
  472     data().getVBases()[I] = *VBases[I];
  475   data().IsParsingBaseSpecifiers = false;
  502     data().NeedOverloadResolutionForCopyConstructor = true;
  504     data().NeedOverloadResolutionForMoveConstructor = true;
  513     data().NeedOverloadResolutionForMoveAssignment = true;
  523     data().NeedOverloadResolutionForCopyConstructor = true;
  524     data().NeedOverloadResolutionForMoveConstructor = true;
  525     data().NeedOverloadResolutionForDestructor = true;
  534     data().DefaultedDestructorIsConstexpr = false;
  569   data().Abstract = true;
  591     if (!RD->data().HasBasesWithFields) {
  677     data().HasOnlyCMembers = false;
  699       data().Aggregate = false;
  703       data().PlainOldData = false;
  707       data().Empty = false;
  712       data().Polymorphic = true;
  718       data().HasTrivialSpecialMembers &= SMF_Destructor;
  719       data().HasTrivialSpecialMembersForCall &= SMF_Destructor;
  724       data().IsStandardLayout = false;
  725       data().IsCXX11StandardLayout = false;
  733       L->AddedCXXImplicitMember(data().Definition, D);
  742       data().UserDeclaredConstructor = true;
  748       data().PlainOldData = false;
  755         data().UserProvidedDefaultConstructor = true;
  757         data().HasConstexprDefaultConstructor = true;
  759         data().HasDefaultedDefaultConstructor = true;
  768           data().HasDeclaredCopyConstructorWithConstParam = true;
  782       data().Aggregate = false;
  794       data().HasConstexprNonCopyMoveConstructor = true;
  802       data().HasIrrelevantDestructor = false;
  810       data().HasTrivialSpecialMembers &= ~SMF_Destructor;
  811       data().HasTrivialSpecialMembersForCall &= ~SMF_Destructor;
  823         data().HasDeclaredCopyAssignmentWithConstParam = true;
  843         ASTUnresolvedSet &Conversions = data().Conversions.get(Ctx);
  857       data().HasTrivialSpecialMembers &=
  858           data().DeclaredSpecialMembers | ~SMKind;
  859       data().HasTrivialSpecialMembersForCall &=
  860           data().DeclaredSpecialMembers | ~SMKind;
  867         data().HasTrivialSpecialMembers |= SMKind;
  868         data().HasTrivialSpecialMembersForCall |= SMKind;
  870         data().HasTrivialSpecialMembersForCall |= SMKind;
  871         data().DeclaredNonTrivialSpecialMembers |= SMKind;
  873         data().DeclaredNonTrivialSpecialMembers |= SMKind;
  880           data().DeclaredNonTrivialSpecialMembersForCall |= SMKind;
  885       data().DeclaredSpecialMembers |= SMKind;
  888         data().UserDeclaredSpecialMembers |= SMKind;
  901         data().PlainOldData = false;
  917     if (data().HasBasesWithFields)
  918       data().IsStandardLayout = false;
  928       if (data().Empty && !Field->isZeroLengthBitField(Context) &&
  931         data().Empty = false;
  939     if (data().HasBasesWithNonStaticDataMembers)
  940       data().IsCXX11StandardLayout = false;
  948       data().Aggregate = false;
  949       data().PlainOldData = false;
  954     bool IsFirstField = !data().HasPrivateFields &&
  955                         !data().HasProtectedFields && !data().HasPublicFields;
  955                         !data().HasProtectedFields && !data().HasPublicFields;
  962     case AS_private:    data().HasPrivateFields = true;   break;
  963     case AS_protected:  data().HasProtectedFields = true; break;
  964     case AS_public:     data().HasPublicFields = true;    break;
  967     if ((data().HasPrivateFields + data().HasProtectedFields +
  967     if ((data().HasPrivateFields + data().HasProtectedFields +
  968          data().HasPublicFields) > 1) {
  969       data().IsStandardLayout = false;
  970       data().IsCXX11StandardLayout = false;
  975       data().HasMutableFields = true;
  976       data().NeedOverloadResolutionForCopyConstructor = true;
  983       data().HasVariantMembers = true;
 1002         struct DefinitionData &Data = data();
 1010           data().HasTrivialSpecialMembersForCall = 0;
 1019           data().DefaultedCopyConstructorIsDeleted = true;
 1020           data().DefaultedMoveConstructorIsDeleted = true;
 1021           data().DefaultedMoveAssignmentIsDeleted = true;
 1022           data().DefaultedDestructorIsDeleted = true;
 1023           data().NeedOverloadResolutionForCopyConstructor = true;
 1024           data().NeedOverloadResolutionForMoveConstructor = true;
 1025           data().NeedOverloadResolutionForMoveAssignment = true;
 1026           data().NeedOverloadResolutionForDestructor = true;
 1032       data().PlainOldData = false;
 1036         data().HasUninitializedReferenceMember = true;
 1041       data().IsStandardLayout = false;
 1042       data().IsCXX11StandardLayout = false;
 1048         data().DefaultedCopyConstructorIsDeleted = true;
 1054           data().HasUninitializedFields = true;
 1056         data().HasUninitializedFields = true;
 1062       data().HasNonLiteralTypeFieldsOrBases = true;
 1067       data().HasInClassInitializer = true;
 1072       data().HasTrivialSpecialMembers &= ~SMF_DefaultConstructor;
 1080         data().Aggregate = false;
 1084       data().PlainOldData = false;
 1092       data().DefaultedMoveAssignmentIsDeleted = true;
 1109           data().NeedOverloadResolutionForCopyConstructor = true;
 1110           data().NeedOverloadResolutionForMoveConstructor = true;
 1111           data().NeedOverloadResolutionForMoveAssignment = true;
 1121             data().DefaultedCopyConstructorIsDeleted = true;
 1123             data().DefaultedMoveConstructorIsDeleted = true;
 1125             data().DefaultedMoveAssignmentIsDeleted = true;
 1127             data().DefaultedDestructorIsDeleted = true;
 1133           data().NeedOverloadResolutionForCopyConstructor |=
 1134               FieldRec->data().NeedOverloadResolutionForCopyConstructor;
 1135           data().NeedOverloadResolutionForMoveConstructor |=
 1136               FieldRec->data().NeedOverloadResolutionForMoveConstructor;
 1137           data().NeedOverloadResolutionForMoveAssignment |=
 1138               FieldRec->data().NeedOverloadResolutionForMoveAssignment;
 1139           data().NeedOverloadResolutionForDestructor |=
 1140               FieldRec->data().NeedOverloadResolutionForDestructor;
 1149           data().HasTrivialSpecialMembers &= ~SMF_DefaultConstructor;
 1158           data().HasTrivialSpecialMembers &= ~SMF_CopyConstructor;
 1161           data().HasTrivialSpecialMembersForCall &= ~SMF_CopyConstructor;
 1167           data().HasTrivialSpecialMembers &= ~SMF_MoveConstructor;
 1170           data().HasTrivialSpecialMembersForCall &= ~SMF_MoveConstructor;
 1179           data().HasTrivialSpecialMembers &= ~SMF_CopyAssignment;
 1184           data().HasTrivialSpecialMembers &= ~SMF_MoveAssignment;
 1187           data().HasTrivialSpecialMembers &= ~SMF_Destructor;
 1189           data().HasTrivialSpecialMembersForCall &= ~SMF_Destructor;
 1191           data().HasIrrelevantDestructor = false;
 1205           data().IsStandardLayout = false;
 1207           data().IsCXX11StandardLayout = false;
 1213         if (data().IsStandardLayout &&
 1216           data().IsStandardLayout = false;
 1222         if (data().IsCXX11StandardLayout && IsFirstField) {
 1227               data().IsCXX11StandardLayout = false;
 1235           data().HasMutableFields = true;
 1236           data().NeedOverloadResolutionForCopyConstructor = true;
 1250           data().DefaultedDefaultConstructorIsConstexpr = false;
 1258           data().ImplicitCopyConstructorCanHaveConstParamForNonVBase = false;
 1267           data().ImplicitCopyAssignmentHasConstParam = false;
 1271           data().HasUninitializedReferenceMember = true;
 1278           data().HasVariantMembers = true;
 1285         data().DefaultedDefaultConstructorIsConstexpr = false;
 1293         data().DefaultedMoveAssignmentIsDeleted = true;
 1299     if (data().Empty && !IsZeroSize)
 1300       data().Empty = false;
 1308       data().Conversions.get(Ctx).addDecl(Ctx, Shadow, Shadow->getAccess());
 1315       data().HasInheritedConstructor = true;
 1318       data().Aggregate = false;
 1322       data().HasInheritedAssignment = true;
 1336         data().HasConstexprDefaultConstructor = true;
 1344       data().HasConstexprNonCopyMoveConstructor = true;
 1348       data().HasIrrelevantDestructor = false;
 1357     data().HasTrivialSpecialMembers |= SMKind;
 1359     data().DeclaredNonTrivialSpecialMembers |= SMKind;
 1374     data().HasTrivialSpecialMembersForCall |= SMKind;
 1376     data().DeclaredNonTrivialSpecialMembersForCall |= SMKind;
 1386   return isPOD() && data().HasOnlyCMembers;
 1629     Set = &data().Conversions.get(Ctx);
 1631     Set = &data().VisibleConversions.get(Ctx);
 1633     if (!data().ComputedVisibleConversions) {
 1635       data().ComputedVisibleConversions = true;
 1653   ASTUnresolvedSet &Convs = data().Conversions.get(getASTContext());
 1892           data().Abstract = true;
 1907   if (data().Abstract || isInvalidDecl() || !data().Polymorphic ||
 1907   if (data().Abstract || isInvalidDecl() || !data().Polymorphic ||
tools/clang/lib/AST/DeclFriend.cpp
   74   Decl *First = data().FirstFriend.get(Source);
tools/clang/lib/Serialization/ASTWriter.cpp
 6186   auto &Data = D->data();