class ASTDeclReader

Declaration

class ASTDeclReader : public DeclVisitor { /* full declaration omitted */ };

Description

A simple visitor class that helps create declaration visitors. This class does not preserve constness of Decl pointers (see also ConstDeclVisitor).

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:81

Inherits from: DeclVisitor

Member Variables

private clang::ASTReader& Reader
private clang::ASTRecordReader& Record
private ASTReader::RecordLocation Loc
private const clang::serialization::DeclID ThisDeclID
private const clang::SourceLocation ThisDeclLoc
private clang::serialization::TypeID DeferredTypeID = 0
private unsigned int AnonymousDeclNumber
private clang::serialization::GlobalDeclID NamedDeclForTagDecl = 0
private clang::IdentifierInfo* TypedefNameForLinkage = nullptr
private bool HasPendingBody = false
private bool IsDeclMarkedUsed = false
A flag to carry the information for a decl from the entity is used. We use it to delay the marking of the canonical decl as used until the entire declaration is deserialized and merged.

Method Overview

Methods

ASTDeclReader(
    clang::ASTReader& Reader,
    clang::ASTRecordReader& Record,
    ASTReader::RecordLocation Loc,
    clang::serialization::DeclID thisDeclID,
    clang::SourceLocation ThisDeclLoc)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:250

Parameters

clang::ASTReader& Reader
clang::ASTRecordReader& Record
ASTReader::RecordLocation Loc
clang::serialization::DeclID thisDeclID
clang::SourceLocation ThisDeclLoc

template <typename T>
static void AddLazySpecializations(
    T* D,
    SmallVectorImpl<serialization::DeclID>& IDs)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:257

Templates

T

Parameters

T* D
SmallVectorImpl<serialization::DeclID>& IDs

uint64_t GetCurrentCursorOffset()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:102

void MergeDefinitionData(
    clang::ObjCProtocolDecl* D,
    struct ObjCProtocolDecl::DefinitionData&&
        NewDD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:169

Parameters

clang::ObjCProtocolDecl* D
struct ObjCProtocolDecl::DefinitionData&& NewDD

void MergeDefinitionData(
    clang::ObjCInterfaceDecl* D,
    struct ObjCInterfaceDecl::DefinitionData&&
        NewDD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:166

Parameters

clang::ObjCInterfaceDecl* D
struct ObjCInterfaceDecl::DefinitionData&& NewDD

void MergeDefinitionData(
    clang::CXXRecordDecl* D,
    struct CXXRecordDecl::DefinitionData&& NewDD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:163

Parameters

clang::CXXRecordDecl* D
struct CXXRecordDecl::DefinitionData&& NewDD

void ReadCXXDefinitionData(
    struct CXXRecordDecl::DefinitionData& Data,
    const clang::CXXRecordDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:161

Parameters

struct CXXRecordDecl::DefinitionData& Data
const clang::CXXRecordDecl* D

void ReadCXXRecordDefinition(
    clang::CXXRecordDecl* D,
    bool Update)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:160

Parameters

clang::CXXRecordDecl* D
bool Update

void ReadFunctionDefinition(
    clang::FunctionDecl* FD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:308

Parameters

clang::FunctionDecl* FD

uint64_t ReadGlobalOffset()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:110

uint64_t ReadLocalOffset()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:104

void ReadObjCDefinitionData(
    struct ObjCInterfaceDecl::DefinitionData&
        Data)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:165

Parameters

struct ObjCInterfaceDecl::DefinitionData& Data

void ReadObjCDefinitionData(
    struct ObjCProtocolDecl::DefinitionData& Data)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:168

Parameters

struct ObjCProtocolDecl::DefinitionData& Data

clang::ObjCTypeParamList* ReadObjCTypeParamList()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:435

void UpdateDecl(
    clang::Decl* D,
    SmallVectorImpl<serialization::DeclID>&)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:311

Parameters

clang::Decl* D
SmallVectorImpl<serialization::DeclID>&

void Visit(clang::Decl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:309

Parameters

clang::Decl* D

void VisitAccessSpecDecl(clang::AccessSpecDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:403

Parameters

clang::AccessSpecDecl* D

void VisitBindingDecl(clang::BindingDecl* BD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:382

Parameters

clang::BindingDecl* BD

void VisitBlockDecl(clang::BlockDecl* BD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:407

Parameters

clang::BlockDecl* BD

void VisitBuiltinTemplateDecl(
    clang::BuiltinTemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:389

Parameters

clang::BuiltinTemplateDecl* D

void VisitCXXConstructorDecl(
    clang::CXXConstructorDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:368

Parameters

clang::CXXConstructorDecl* D

void VisitCXXConversionDecl(
    clang::CXXConversionDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:370

Parameters

clang::CXXConversionDecl* D

void VisitCXXDeductionGuideDecl(
    clang::CXXDeductionGuideDecl* GD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:366

Parameters

clang::CXXDeductionGuideDecl* GD

void VisitCXXDestructorDecl(
    clang::CXXDestructorDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:369

Parameters

clang::CXXDestructorDecl* D

void VisitCXXMethodDecl(clang::CXXMethodDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:367

Parameters

clang::CXXMethodDecl* D

void VisitCXXRecordDecl(clang::CXXRecordDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:338

Parameters

clang::CXXRecordDecl* D

clang::ASTDeclReader::RedeclarableResult
VisitCXXRecordDeclImpl(clang::CXXRecordDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:337

Parameters

clang::CXXRecordDecl* D

void VisitCapturedDecl(clang::CapturedDecl* CD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:408

Parameters

clang::CapturedDecl* CD

void VisitClassScopeFunctionSpecializationDecl(
    clang::ClassScopeFunctionSpecializationDecl*
        D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:349

Parameters

clang::ClassScopeFunctionSpecializationDecl* D

void VisitClassTemplateDecl(
    clang::ClassTemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:388

Parameters

clang::ClassTemplateDecl* D

void VisitClassTemplatePartialSpecializationDecl(
    clang::ClassTemplatePartialSpecializationDecl*
        D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:347

Parameters

clang::ClassTemplatePartialSpecializationDecl* D

void VisitClassTemplateSpecializationDecl(
    clang::ClassTemplateSpecializationDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:342

Parameters

clang::ClassTemplateSpecializationDecl* D

clang::ASTDeclReader::RedeclarableResult
VisitClassTemplateSpecializationDeclImpl(
    clang::ClassTemplateSpecializationDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:339

Parameters

clang::ClassTemplateSpecializationDecl* D

void VisitConceptDecl(clang::ConceptDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:385

Parameters

clang::ConceptDecl* D

void VisitConstructorUsingShadowDecl(
    clang::ConstructorUsingShadowDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:398

Parameters

clang::ConstructorUsingShadowDecl* D

void VisitDecl(clang::Decl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:318

Parameters

clang::Decl* D

std::pair<uint64_t, uint64_t> VisitDeclContext(
    clang::DeclContext* DC)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:412

Parameters

clang::DeclContext* DC

void VisitDeclaratorDecl(
    clang::DeclaratorDecl* DD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:364

Parameters

clang::DeclaratorDecl* DD

void VisitDecompositionDecl(
    clang::DecompositionDecl* DD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:381

Parameters

clang::DecompositionDecl* DD

void VisitEmptyDecl(clang::EmptyDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:409

Parameters

clang::EmptyDecl* D

void VisitEnumConstantDecl(
    clang::EnumConstantDecl* ECD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:362

Parameters

clang::EnumConstantDecl* ECD

void VisitEnumDecl(clang::EnumDecl* ED)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:334

Parameters

clang::EnumDecl* ED

void VisitExportDecl(clang::ExportDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:400

Parameters

clang::ExportDecl* D

void VisitFieldDecl(clang::FieldDecl* FD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:371

Parameters

clang::FieldDecl* FD

void VisitFileScopeAsmDecl(
    clang::FileScopeAsmDecl* AD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:401

Parameters

clang::FileScopeAsmDecl* AD

void VisitFriendDecl(clang::FriendDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:404

Parameters

clang::FriendDecl* D

void VisitFriendTemplateDecl(
    clang::FriendTemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:405

Parameters

clang::FriendTemplateDecl* D

void VisitFunctionDecl(clang::FunctionDecl* FD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:365

Parameters

clang::FunctionDecl* FD

void VisitFunctionTemplateDecl(
    clang::FunctionTemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:391

Parameters

clang::FunctionTemplateDecl* D

void VisitImplicitParamDecl(
    clang::ImplicitParamDecl* PD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:379

Parameters

clang::ImplicitParamDecl* PD

void VisitImportDecl(clang::ImportDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:402

Parameters

clang::ImportDecl* D

void VisitIndirectFieldDecl(
    clang::IndirectFieldDecl* FD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:376

Parameters

clang::IndirectFieldDecl* FD

void VisitLabelDecl(clang::LabelDecl* LD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:323

Parameters

clang::LabelDecl* LD

void VisitLifetimeExtendedTemporaryDecl(
    clang::LifetimeExtendedTemporaryDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:410

Parameters

clang::LifetimeExtendedTemporaryDecl* D

void VisitLinkageSpecDecl(
    clang::LinkageSpecDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:399

Parameters

clang::LinkageSpecDecl* D

void VisitMSGuidDecl(clang::MSGuidDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:373

Parameters

clang::MSGuidDecl* D

void VisitMSPropertyDecl(
    clang::MSPropertyDecl* FD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:372

Parameters

clang::MSPropertyDecl* FD

void VisitNamedDecl(clang::NamedDecl* ND)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:322

Parameters

clang::NamedDecl* ND

void VisitNamespaceAliasDecl(
    clang::NamespaceAliasDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:326

Parameters

clang::NamespaceAliasDecl* D

void VisitNamespaceDecl(clang::NamespaceDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:324

Parameters

clang::NamespaceDecl* D

void VisitNonTypeTemplateParmDecl(
    clang::NonTypeTemplateParmDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:383

Parameters

clang::NonTypeTemplateParmDecl* D

void VisitOMPAllocateDecl(
    clang::OMPAllocateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:453

Parameters

clang::OMPAllocateDecl* D

void VisitOMPCapturedExprDecl(
    clang::OMPCapturedExprDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:457

Parameters

clang::OMPCapturedExprDecl* D

void VisitOMPDeclareMapperDecl(
    clang::OMPDeclareMapperDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:455

Parameters

clang::OMPDeclareMapperDecl* D

void VisitOMPDeclareReductionDecl(
    clang::OMPDeclareReductionDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:454

Parameters

clang::OMPDeclareReductionDecl* D

void VisitOMPRequiresDecl(
    clang::OMPRequiresDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:456

Parameters

clang::OMPRequiresDecl* D

void VisitOMPThreadPrivateDecl(
    clang::OMPThreadPrivateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:452

Parameters

clang::OMPThreadPrivateDecl* D

void VisitObjCAtDefsFieldDecl(
    clang::ObjCAtDefsFieldDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:444

Parameters

clang::ObjCAtDefsFieldDecl* D

void VisitObjCCategoryDecl(
    clang::ObjCCategoryDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:445

Parameters

clang::ObjCCategoryDecl* D

void VisitObjCCategoryImplDecl(
    clang::ObjCCategoryImplDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:447

Parameters

clang::ObjCCategoryImplDecl* D

void VisitObjCCompatibleAliasDecl(
    clang::ObjCCompatibleAliasDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:449

Parameters

clang::ObjCCompatibleAliasDecl* D

void VisitObjCContainerDecl(
    clang::ObjCContainerDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:440

Parameters

clang::ObjCContainerDecl* D

void VisitObjCImplDecl(clang::ObjCImplDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:446

Parameters

clang::ObjCImplDecl* D

void VisitObjCImplementationDecl(
    clang::ObjCImplementationDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:448

Parameters

clang::ObjCImplementationDecl* D

void VisitObjCInterfaceDecl(
    clang::ObjCInterfaceDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:441

Parameters

clang::ObjCInterfaceDecl* D

void VisitObjCIvarDecl(clang::ObjCIvarDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:442

Parameters

clang::ObjCIvarDecl* D

void VisitObjCMethodDecl(clang::ObjCMethodDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:438

Parameters

clang::ObjCMethodDecl* D

void VisitObjCPropertyDecl(
    clang::ObjCPropertyDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:450

Parameters

clang::ObjCPropertyDecl* D

void VisitObjCPropertyImplDecl(
    clang::ObjCPropertyImplDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:451

Parameters

clang::ObjCPropertyImplDecl* D

void VisitObjCProtocolDecl(
    clang::ObjCProtocolDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:443

Parameters

clang::ObjCProtocolDecl* D

void VisitObjCTypeParamDecl(
    clang::ObjCTypeParamDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:439

Parameters

clang::ObjCTypeParamDecl* D

void VisitParmVarDecl(clang::ParmVarDecl* PD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:380

Parameters

clang::ParmVarDecl* PD

void VisitPragmaCommentDecl(
    clang::PragmaCommentDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:319

Parameters

clang::PragmaCommentDecl* D

void VisitPragmaDetectMismatchDecl(
    clang::PragmaDetectMismatchDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:320

Parameters

clang::PragmaDetectMismatchDecl* D

void VisitRecordDecl(clang::RecordDecl* RD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:336

Parameters

clang::RecordDecl* RD

clang::ASTDeclReader::RedeclarableResult
VisitRecordDeclImpl(clang::RecordDecl* RD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:335

Parameters

clang::RecordDecl* RD

template <typename T>
clang::ASTDeclReader::RedeclarableResult
VisitRedeclarable(Redeclarable<T>* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:415

Templates

T

Parameters

Redeclarable<T>* D

clang::ASTDeclReader::RedeclarableResult
VisitRedeclarableTemplateDecl(
    clang::RedeclarableTemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:387

Parameters

clang::RedeclarableTemplateDecl* D

void VisitRequiresExprBodyDecl(
    clang::RequiresExprBodyDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:386

Parameters

clang::RequiresExprBodyDecl* D

void VisitStaticAssertDecl(
    clang::StaticAssertDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:406

Parameters

clang::StaticAssertDecl* D

clang::ASTDeclReader::RedeclarableResult
VisitTagDecl(clang::TagDecl* TD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:333

Parameters

clang::TagDecl* TD

clang::serialization::DeclID VisitTemplateDecl(
    clang::TemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:384

Parameters

clang::TemplateDecl* D

void VisitTemplateParamObjectDecl(
    clang::TemplateParamObjectDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:375

Parameters

clang::TemplateParamObjectDecl* D

void VisitTemplateTemplateParmDecl(
    clang::TemplateTemplateParmDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:392

Parameters

clang::TemplateTemplateParmDecl* D

void VisitTemplateTypeParmDecl(
    clang::TemplateTypeParmDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:360

Parameters

clang::TemplateTypeParmDecl* D

void VisitTranslationUnitDecl(
    clang::TranslationUnitDecl* TU)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:321

Parameters

clang::TranslationUnitDecl* TU

void VisitTypeAliasDecl(clang::TypeAliasDecl* TD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:330

Parameters

clang::TypeAliasDecl* TD

void VisitTypeAliasTemplateDecl(
    clang::TypeAliasTemplateDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:393

Parameters

clang::TypeAliasTemplateDecl* D

void VisitTypeDecl(clang::TypeDecl* TD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:327

Parameters

clang::TypeDecl* TD

void VisitTypedefDecl(clang::TypedefDecl* TD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:329

Parameters

clang::TypedefDecl* TD

clang::ASTDeclReader::RedeclarableResult
VisitTypedefNameDecl(clang::TypedefNameDecl* TD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:328

Parameters

clang::TypedefNameDecl* TD

void VisitUnnamedGlobalConstantDecl(
    clang::UnnamedGlobalConstantDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:374

Parameters

clang::UnnamedGlobalConstantDecl* D

void VisitUnresolvedUsingIfExistsDecl(
    clang::UnresolvedUsingIfExistsDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:332

Parameters

clang::UnresolvedUsingIfExistsDecl* D

void VisitUnresolvedUsingTypenameDecl(
    clang::UnresolvedUsingTypenameDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:331

Parameters

clang::UnresolvedUsingTypenameDecl* D

void VisitUnresolvedUsingValueDecl(
    clang::UnresolvedUsingValueDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:363

Parameters

clang::UnresolvedUsingValueDecl* D

void VisitUsingDecl(clang::UsingDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:394

Parameters

clang::UsingDecl* D

void VisitUsingDirectiveDecl(
    clang::UsingDirectiveDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:325

Parameters

clang::UsingDirectiveDecl* D

void VisitUsingEnumDecl(clang::UsingEnumDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:395

Parameters

clang::UsingEnumDecl* D

void VisitUsingPackDecl(clang::UsingPackDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:396

Parameters

clang::UsingPackDecl* D

void VisitUsingShadowDecl(
    clang::UsingShadowDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:397

Parameters

clang::UsingShadowDecl* D

void VisitValueDecl(clang::ValueDecl* VD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:361

Parameters

clang::ValueDecl* VD

void VisitVarDecl(clang::VarDecl* VD)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:378

Parameters

clang::VarDecl* VD

clang::ASTDeclReader::RedeclarableResult
VisitVarDeclImpl(clang::VarDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:377

Parameters

clang::VarDecl* D

void VisitVarTemplateDecl(
    clang::VarTemplateDecl* D)

Description

TODO: Unify with ClassTemplateDecl version? May require unifying ClassTemplateDecl and VarTemplateDecl beyond TemplateDecl...

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:390

Parameters

clang::VarTemplateDecl* D

void VisitVarTemplatePartialSpecializationDecl(
    clang::VarTemplatePartialSpecializationDecl*
        D)

Description

TODO: Unify with ClassTemplatePartialSpecializationDecl version? May require unifying ClassTemplate(Partial)SpecializationDecl and VarTemplate(Partial)SpecializationDecl with a new data structure Template(Partial)SpecializationDecl, and using Template(Partial)SpecializationDecl as input type.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:358

Parameters

clang::VarTemplatePartialSpecializationDecl* D

void VisitVarTemplateSpecializationDecl(
    clang::VarTemplateSpecializationDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:354

Parameters

clang::VarTemplateSpecializationDecl* D

clang::ASTDeclReader::RedeclarableResult
VisitVarTemplateSpecializationDeclImpl(
    clang::VarTemplateSpecializationDecl* D)

Description

TODO: Unify with ClassTemplateSpecializationDecl version? May require unifying ClassTemplate(Partial)SpecializationDecl and VarTemplate(Partial)SpecializationDecl with a new data structure Template(Partial)SpecializationDecl, and using Template(Partial)SpecializationDecl as input type.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:352

Parameters

clang::VarTemplateSpecializationDecl* D

static void attachLatestDecl(clang::Decl* D,
                             clang::Decl* latest)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:299

Parameters

clang::Decl* D
clang::Decl* latest

static void attachLatestDeclImpl(...)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:298

template <typename DeclT>
static void attachLatestDeclImpl(
    Redeclarable<DeclT>* D,
    clang::Decl* Latest)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:297

Templates

DeclT

Parameters

Redeclarable<DeclT>* D
clang::Decl* Latest

static void attachPreviousDecl(
    clang::ASTReader& Reader,
    clang::Decl* D,
    clang::Decl* Previous,
    clang::Decl* Canon)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:293

Parameters

clang::ASTReader& Reader
clang::Decl* D
clang::Decl* Previous
clang::Decl* Canon

static void attachPreviousDeclImpl(
    clang::ASTReader& Reader,
    ...)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:292

Parameters

clang::ASTReader& Reader

template <typename DeclT>
static void attachPreviousDeclImpl(
    clang::ASTReader& Reader,
    Redeclarable<DeclT>* D,
    clang::Decl* Previous,
    clang::Decl* Canon)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:289

Templates

DeclT

Parameters

clang::ASTReader& Reader
Redeclarable<DeclT>* D
clang::Decl* Previous
clang::Decl* Canon

clang::ASTDeclReader::FindExistingResult
findExisting(clang::NamedDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:247

Parameters

clang::NamedDecl* D

static clang::NamedDecl*
getAnonymousDeclForMerging(
    clang::ASTReader& Reader,
    clang::DeclContext* DC,
    unsigned int Index)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:174

Parameters

clang::ASTReader& Reader
clang::DeclContext* DC
unsigned int Index

static clang::Decl* getMostRecentDecl(
    clang::Decl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:283

Parameters

clang::Decl* D

template <typename DeclT>
static clang::Decl* getMostRecentDeclImpl(
    Redeclarable<DeclT>* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:281

Templates

DeclT

Parameters

Redeclarable<DeclT>* D

static clang::Decl* getMostRecentDeclImpl(...)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:282

static clang::DeclContext*
getPrimaryContextForMerging(
    clang::ASTReader& Reader,
    clang::DeclContext* DC)

Description

Find the context in which we should search for previous declarations when looking for declarations to merge.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:245

Parameters

clang::ASTReader& Reader
clang::DeclContext* DC

static clang::DeclContext*
getPrimaryDCForAnonymousDecl(
    clang::DeclContext* LexicalDC)

Description

Find the declaration to use to populate the anonymous declaration table for the given lexical DeclContext. We only care about finding local definitions of the context; we'll merge imported ones as we go.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:172

Parameters

clang::DeclContext* LexicalDC

bool hasPendingBody() const

Description

Determine whether this declaration has a pending body.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:306

template <typename DeclT>
static void markIncompleteDeclChainImpl(
    Redeclarable<DeclT>* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:302

Templates

DeclT

Parameters

Redeclarable<DeclT>* D

static void markIncompleteDeclChainImpl(...)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:303

static void mergeInheritableAttributes(
    clang::ASTReader& Reader,
    clang::Decl* D,
    clang::Decl* Previous)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:285

Parameters

clang::ASTReader& Reader
clang::Decl* D
clang::Decl* Previous

template <typename T>
void mergeMergeable(Mergeable<T>* D)

Description

Attempts to merge the given declaration (D) with another declaration of the same entity, for the case where the entity is not actually redeclarable. This happens, for instance, when merging the fields of identical class definitions from two different modules.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:427

Templates

T

Parameters

Mergeable<T>* D

void mergeMergeable(
    clang::LifetimeExtendedTemporaryDecl* D)

Description

Attempts to merge LifetimeExtendedTemporaryDecl with identical class definitions from two different modules.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:429

Parameters

clang::LifetimeExtendedTemporaryDecl* D

template <typename T>
void mergeRedeclarable(
    Redeclarable<T>* D,
    T* Existing,
    clang::ASTDeclReader::RedeclarableResult&
        Redecl,
    clang::serialization::DeclID
        TemplatePatternID = 0)

Description

Attempts to merge the given declaration (D) with another declaration of the same entity.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:422

Templates

T

Parameters

Redeclarable<T>* D
T* Existing
clang::ASTDeclReader::RedeclarableResult& Redecl
clang::serialization::DeclID TemplatePatternID = 0

template <typename T>
void mergeRedeclarable(
    Redeclarable<T>* D,
    clang::ASTDeclReader::RedeclarableResult&
        Redecl,
    clang::serialization::DeclID
        TemplatePatternID = 0)

Description

Attempts to merge the given declaration (D) with another declaration of the same entity.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:418

Templates

T

Parameters

Redeclarable<T>* D
clang::ASTDeclReader::RedeclarableResult& Redecl
clang::serialization::DeclID TemplatePatternID = 0

void mergeTemplatePattern(
    clang::RedeclarableTemplateDecl* D,
    clang::RedeclarableTemplateDecl* Existing,
    clang::serialization::DeclID DsID,
    bool IsKeyDecl)

Description

Merge together the pattern declarations from two template declarations.

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:431

Parameters

clang::RedeclarableTemplateDecl* D
clang::RedeclarableTemplateDecl* Existing
clang::serialization::DeclID DsID
bool IsKeyDecl

clang::Decl* readDecl()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:140

template <typename T>
T* readDeclAs()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:145

Templates

T

serialization::DeclID readDeclID()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:127

void readDeclIDList(
    SmallVectorImpl<clang::serialization::DeclID>&
        IDs)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:135

Parameters

SmallVectorImpl<clang::serialization::DeclID>& IDs

clang::Module* readModule()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:156

clang::SourceLocation readSourceLocation()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:115

clang::SourceRange readSourceRange()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:119

std::string readString()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:131

serialization::SubmoduleID readSubmoduleID()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:149

clang::TypeSourceInfo* readTypeSourceInfo()

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:123

static void setAnonymousDeclForMerging(
    clang::ASTReader& Reader,
    clang::DeclContext* DC,
    unsigned int Index,
    clang::NamedDecl* D)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:177

Parameters

clang::ASTReader& Reader
clang::DeclContext* DC
unsigned int Index
clang::NamedDecl* D

static void setNextObjCCategory(
    clang::ObjCCategoryDecl* Cat,
    clang::ObjCCategoryDecl* Next)

Declared at: clang/lib/Serialization/ASTReaderDecl.cpp:313

Parameters

clang::ObjCCategoryDecl* Cat
clang::ObjCCategoryDecl* Next