• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/clang/lib/Sema/

Lines Matching refs:Record

222   // Record the exceptions in this function's exception specification.
618 if (CXXRecordDecl *Record
620 if (Record->getDescribedClassTemplate())
622 else if (isa<ClassTemplatePartialSpecializationDecl>(Record))
2509 assert(BaseDecl && "Record type has no declaration");
2684 if (const RecordType *Record = NewBaseType->getAs<RecordType>()) {
2685 const CXXRecordDecl *RD = cast<CXXRecordDecl>(Record->getDecl());
3132 // Record an ambiguous path directly
4174 if (CXXRecordDecl *Record = dyn_cast_or_null<CXXRecordDecl>(DC))
4175 NotUnknownSpecialization = !Record->hasAnyDependentBases();
4844 RecordDecl *Record = Field->getParent();
4845 if (!Record->isUnion())
4849 ActiveUnionMember.lookup(Record->getCanonicalDecl()))
5652 CXXRecordDecl *Record;
5656 AbstractUsageInfo(Sema &S, CXXRecordDecl *Record)
5657 : S(S), Record(Record),
5659 S.Context.getTypeDeclType(Record))),
5664 S.DiagnoseAbstractType(Record);
6511 /// \param Record The completed class.
6512 void Sema::CheckCompletedCXXClass(Scope *S, CXXRecordDecl *Record) {
6513 if (!Record)
6516 if (Record->isAbstract() && !Record->isInvalidDecl()) {
6517 AbstractUsageInfo Info(*this, Record);
6518 CheckAbstractClassUsage(Info, Record);
6524 if (!Record->isInvalidDecl() && !Record->isDependentType() &&
6525 !Record->isAggregate() && !Record->hasUserDeclaredConstructor() &&
6526 !Record->isLambda()) {
6528 for (const auto *F : Record->fields()) {
6535 Diag(Record->getLocation(), diag::warn_no_constructor_for_refconst)
6536 << Record->getTagKind() << Record;
6547 if (Record->getIdentifier()) {
6556 DeclContext::lookup_result R = Record->lookup(Record->getDeclName());
6561 Record->hasUserDeclaredConstructor()) ||
6571 if (Record->isPolymorphic() && !Record->isDependentType()) {
6572 CXXDestructorDecl *dtor = Record->getDestructor();
6574 !Record->hasAttr<FinalAttr>())
6575 Diag(dtor ? dtor->getLocation() : Record->getLocation(),
6576 diag::warn_non_virtual_dtor) << Context.getRecordType(Record);
6579 if (Record->isAbstract()) {
6580 if (FinalAttr *FA = Record->getAttr<FinalAttr>()) {
6581 Diag(Record->getLocation(), diag::warn_abstract_final_class)
6583 DiagnoseAbstractType(Record);
6588 if (!Record->hasAttr<FinalAttr>()) {
6589 if (const CXXDestructorDecl *dtor = Record->getDestructor()) {
6594 getLocForEndOfToken(Record->getLocation()),
6596 Diag(Record->getLocation(),
6598 << Context.getRecordType(Record) << FA->isSpelledAsSealed();
6604 if (Record->hasAttr<TrivialABIAttr>())
6605 checkIllFormedTrivialABIStruct(*Record);
6609 bool HasTrivialABI = Record->hasAttr<TrivialABIAttr>();
6612 Record->setHasTrivialSpecialMemberForCall();
6679 if (Record->isDependentType())
6689 Record->finishedDefaultedOrDeletedMember(M);
6693 Record->setTrivialForCallFlags(M);
6702 Record->setTrivialForCallFlags(M);
6734 if (CXXDestructorDecl *Dtor = Record->getDestructor())
6739 for (auto *D : Record->decls()) {
6743 if (!Record->isDependentType()) {
6764 for (auto *M : Record->methods())
6790 if (Record->isMsStruct(Context) && !Context.getLangOpts().MSBitfields &&
6791 (Record->isPolymorphic() || Record->getNumBases())) {
6792 Diag(Record->getLocation(), diag::warn_cxx_ms_struct);
6795 checkClassLevelDLLAttribute(Record);
6796 checkClassLevelCodeSegAttribute(Record);
6802 bool CanPass = canPassInRegisters(*this, Record, CCK);
6806 if (Record->getArgPassingRestrictions() != RecordDecl::APK_CanNeverPassInRegs)
6807 Record->setArgPassingRestrictions(CanPass
6816 Record->setParamDestroyedInCallee(true);
6817 else if (Record->hasNonTrivialDestructor())
6818 Record->setParamDestroyedInCallee(CanPass);
6823 MarkVTableUsed(Record->getInnerLocStart(), Record);
6827 if (Record->hasAttr<CUDADeviceBuiltinSurfaceTypeAttr>())
6828 checkCUDADeviceBuiltinSurfaceClassTemplate(*this, Record);
6829 else if (Record->hasAttr<CUDADeviceBuiltinTextureTypeAttr>())
6830 checkCUDADeviceBuiltinTextureClassTemplate(*this, Record);
7444 bool visitSubobjects(ResultList &Results, CXXRecordDecl *Record,
7448 for (CXXBaseSpecifier &Base : Record->bases())
7455 for (FieldDecl *Field : Record->fields()) {
10022 CXXRecordDecl *Record = cast<CXXRecordDecl>(RecordD);
10023 PushDeclContext(S, Record);
11060 assert(Info->Record);
11062 // Update the Record decl in case we encountered a forward declaration on our
11064 if (Info->Record->hasDefinition())
11065 Info->Record = Info->Record->getDefinition();
11072 if (!Info->Record->isTriviallyCopyable())
11075 for (const CXXBaseSpecifier &BaseSpec : Info->Record->bases()) {
11088 auto FIt = Info->Record->field_begin(), FEnd = Info->Record->field_end();
13322 if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(CurContext)) {
13323 if (Record->isInvalidDecl()) {
13328 checkForMultipleExportedDefaultConstructors(*this, Record);
14046 // Success! Record the copy.
14113 // Success! Record the copy.
14415 // Success! Record the move.
14485 // Success! Record the copy.
15088 void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {
15095 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Record->getDecl());
17084 = VTablesUsed.find(VTables[I].Record);
17092 VTablesUsed[VTables[I].Record] = VTables[I].DefinitionRequired;
17093 NewUses.push_back(VTableUse(VTables[I].Record, VTables[I].Location));
17660 MSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record,
17724 if (PrevDecl && !isDeclInScope(PrevDecl, Record, S))
17729 MSPropertyDecl::Create(Context, Record, Loc, II, T, TInfo, TSSL,
17736 Record->setInvalidDecl();
17747 Record->addDecl(NewPD);