clang  3.9.0
Public Member Functions | List of all members
clang::ASTDeclWriter Class Reference
Inheritance diagram for clang::ASTDeclWriter:
[legend]
Collaboration diagram for clang::ASTDeclWriter:
[legend]

Public Member Functions

 ASTDeclWriter (ASTWriter &Writer, ASTContext &Context, ASTWriter::RecordDataImpl &Record)
 
uint64_t Emit (Decl *D)
 
void Visit (Decl *D)
 
void VisitDecl (Decl *D)
 
void VisitPragmaCommentDecl (PragmaCommentDecl *D)
 
void VisitPragmaDetectMismatchDecl (PragmaDetectMismatchDecl *D)
 
void VisitTranslationUnitDecl (TranslationUnitDecl *D)
 
void VisitNamedDecl (NamedDecl *D)
 
void VisitLabelDecl (LabelDecl *LD)
 
void VisitNamespaceDecl (NamespaceDecl *D)
 
void VisitUsingDirectiveDecl (UsingDirectiveDecl *D)
 
void VisitNamespaceAliasDecl (NamespaceAliasDecl *D)
 
void VisitTypeDecl (TypeDecl *D)
 
void VisitTypedefNameDecl (TypedefNameDecl *D)
 
void VisitTypedefDecl (TypedefDecl *D)
 
void VisitTypeAliasDecl (TypeAliasDecl *D)
 
void VisitUnresolvedUsingTypenameDecl (UnresolvedUsingTypenameDecl *D)
 
void VisitTagDecl (TagDecl *D)
 
void VisitEnumDecl (EnumDecl *D)
 
void VisitRecordDecl (RecordDecl *D)
 
void VisitCXXRecordDecl (CXXRecordDecl *D)
 
void VisitClassTemplateSpecializationDecl (ClassTemplateSpecializationDecl *D)
 
void VisitClassTemplatePartialSpecializationDecl (ClassTemplatePartialSpecializationDecl *D)
 
void VisitVarTemplateSpecializationDecl (VarTemplateSpecializationDecl *D)
 
void VisitVarTemplatePartialSpecializationDecl (VarTemplatePartialSpecializationDecl *D)
 
void VisitClassScopeFunctionSpecializationDecl (ClassScopeFunctionSpecializationDecl *D)
 
void VisitTemplateTypeParmDecl (TemplateTypeParmDecl *D)
 
void VisitValueDecl (ValueDecl *D)
 
void VisitEnumConstantDecl (EnumConstantDecl *D)
 
void VisitUnresolvedUsingValueDecl (UnresolvedUsingValueDecl *D)
 
void VisitDeclaratorDecl (DeclaratorDecl *D)
 
void VisitFunctionDecl (FunctionDecl *D)
 
void VisitCXXMethodDecl (CXXMethodDecl *D)
 
void VisitCXXConstructorDecl (CXXConstructorDecl *D)
 
void VisitCXXDestructorDecl (CXXDestructorDecl *D)
 
void VisitCXXConversionDecl (CXXConversionDecl *D)
 
void VisitFieldDecl (FieldDecl *D)
 
void VisitMSPropertyDecl (MSPropertyDecl *D)
 
void VisitIndirectFieldDecl (IndirectFieldDecl *D)
 
void VisitVarDecl (VarDecl *D)
 
void VisitImplicitParamDecl (ImplicitParamDecl *D)
 
void VisitParmVarDecl (ParmVarDecl *D)
 
void VisitNonTypeTemplateParmDecl (NonTypeTemplateParmDecl *D)
 
void VisitTemplateDecl (TemplateDecl *D)
 
void VisitRedeclarableTemplateDecl (RedeclarableTemplateDecl *D)
 
void VisitClassTemplateDecl (ClassTemplateDecl *D)
 
void VisitVarTemplateDecl (VarTemplateDecl *D)
 
void VisitFunctionTemplateDecl (FunctionTemplateDecl *D)
 
void VisitTemplateTemplateParmDecl (TemplateTemplateParmDecl *D)
 
void VisitTypeAliasTemplateDecl (TypeAliasTemplateDecl *D)
 
void VisitUsingDecl (UsingDecl *D)
 
void VisitUsingShadowDecl (UsingShadowDecl *D)
 
void VisitConstructorUsingShadowDecl (ConstructorUsingShadowDecl *D)
 
void VisitLinkageSpecDecl (LinkageSpecDecl *D)
 
void VisitFileScopeAsmDecl (FileScopeAsmDecl *D)
 
void VisitImportDecl (ImportDecl *D)
 
void VisitAccessSpecDecl (AccessSpecDecl *D)
 
void VisitFriendDecl (FriendDecl *D)
 
void VisitFriendTemplateDecl (FriendTemplateDecl *D)
 
void VisitStaticAssertDecl (StaticAssertDecl *D)
 
void VisitBlockDecl (BlockDecl *D)
 
void VisitCapturedDecl (CapturedDecl *D)
 
void VisitEmptyDecl (EmptyDecl *D)
 
void VisitDeclContext (DeclContext *DC)
 Emit the DeclContext part of a declaration context decl. More...
 
template<typename T >
void VisitRedeclarable (Redeclarable< T > *D)
 
void VisitObjCMethodDecl (ObjCMethodDecl *D)
 
void VisitObjCTypeParamDecl (ObjCTypeParamDecl *D)
 
void VisitObjCContainerDecl (ObjCContainerDecl *D)
 
void VisitObjCInterfaceDecl (ObjCInterfaceDecl *D)
 
void VisitObjCIvarDecl (ObjCIvarDecl *D)
 
void VisitObjCProtocolDecl (ObjCProtocolDecl *D)
 
void VisitObjCAtDefsFieldDecl (ObjCAtDefsFieldDecl *D)
 
void VisitObjCCategoryDecl (ObjCCategoryDecl *D)
 
void VisitObjCImplDecl (ObjCImplDecl *D)
 
void VisitObjCCategoryImplDecl (ObjCCategoryImplDecl *D)
 
void VisitObjCImplementationDecl (ObjCImplementationDecl *D)
 
void VisitObjCCompatibleAliasDecl (ObjCCompatibleAliasDecl *D)
 
void VisitObjCPropertyDecl (ObjCPropertyDecl *D)
 
void VisitObjCPropertyImplDecl (ObjCPropertyImplDecl *D)
 
void VisitOMPThreadPrivateDecl (OMPThreadPrivateDecl *D)
 
void VisitOMPDeclareReductionDecl (OMPDeclareReductionDecl *D)
 
void VisitOMPCapturedExprDecl (OMPCapturedExprDecl *D)
 
void AddObjCTypeParamList (ObjCTypeParamList *typeParams)
 Add an Objective-C type parameter list to the given record. More...
 
void AddFirstDeclFromEachModule (const Decl *D, bool IncludeLocal)
 Add to the record the first declaration from each module file that provides a declaration of D. More...
 
template<typename EntryType >
RedeclarableTemplateDecl::SpecEntryTraits
< EntryType >::DeclType * 
getSpecializationDecl (EntryType &T)
 Get the specialization decl from an entry in the specialization list. More...
 
template<typename T >
decltype(T::PartialSpecializations)& getPartialSpecializations (T *Common)
 Get the list of partial specializations from a template's common ptr. More...
 
ArrayRef< DeclgetPartialSpecializations (FunctionTemplateDecl::Common *)
 
template<typename DeclTy >
void AddTemplateSpecializations (DeclTy *D)
 
void RegisterTemplateSpecialization (const Decl *Template, const Decl *Specialization)
 Ensure that this template specialization is associated with the specified template on reload. More...
 
- Public Member Functions inherited from clang::declvisitor::Base< declvisitor::make_ptr, ASTDeclWriter, void >
void Visit (PTR(Decl) D)
 
void VisitDecl (PTR(Decl) D)
 

Detailed Description

Definition at line 34 of file ASTWriterDecl.cpp.

Constructor & Destructor Documentation

clang::ASTDeclWriter::ASTDeclWriter ( ASTWriter Writer,
ASTContext Context,
ASTWriter::RecordDataImpl Record 
)
inline

Definition at line 43 of file ASTWriterDecl.cpp.

Member Function Documentation

void clang::ASTDeclWriter::AddFirstDeclFromEachModule ( const Decl D,
bool  IncludeLocal 
)
inline

Add to the record the first declaration from each module file that provides a declaration of D.

The intent is to provide a sufficient set such that reloading this set will load all current redeclarations.

Definition at line 164 of file ASTWriterDecl.cpp.

void clang::ASTDeclWriter::AddObjCTypeParamList ( ObjCTypeParamList typeParams)
inline

Add an Objective-C type parameter list to the given record.

Definition at line 146 of file ASTWriterDecl.cpp.

References clang::ObjCTypeParamList::size().

template<typename DeclTy >
void clang::ASTDeclWriter::AddTemplateSpecializations ( DeclTy *  D)
inline

Definition at line 194 of file ASTWriterDecl.cpp.

References I.

uint64_t clang::ASTDeclWriter::Emit ( Decl D)
inline

Definition at line 48 of file ASTWriterDecl.cpp.

template<typename T >
decltype(T::PartialSpecializations) & clang::ASTDeclWriter::getPartialSpecializations ( T *  Common)
inline

Get the list of partial specializations from a template's common ptr.

Definition at line 186 of file ASTWriterDecl.cpp.

ArrayRef<Decl> clang::ASTDeclWriter::getPartialSpecializations ( FunctionTemplateDecl::Common )
inline

Definition at line 189 of file ASTWriterDecl.cpp.

References clang::None.

template<typename EntryType >
RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType* clang::ASTDeclWriter::getSpecializationDecl ( EntryType &  T)
inline

Get the specialization decl from an entry in the specialization list.

Definition at line 180 of file ASTWriterDecl.cpp.

References clang::RedeclarableTemplateDecl::SpecEntryTraits< EntryType >::getDecl().

void clang::ASTDeclWriter::RegisterTemplateSpecialization ( const Decl Template,
const Decl Specialization 
)
inline

Ensure that this template specialization is associated with the specified template on reload.

Definition at line 234 of file ASTWriterDecl.cpp.

References clang::serialization::UPD_CXX_ADDED_TEMPLATE_SPECIALIZATION.

void ASTDeclWriter::Visit ( Decl D)
void ASTDeclWriter::VisitAccessSpecDecl ( AccessSpecDecl D)
void ASTDeclWriter::VisitBlockDecl ( BlockDecl D)
void ASTDeclWriter::VisitCapturedDecl ( CapturedDecl D)
void ASTDeclWriter::VisitClassScopeFunctionSpecializationDecl ( ClassScopeFunctionSpecializationDecl D)
void ASTDeclWriter::VisitClassTemplateDecl ( ClassTemplateDecl D)
void ASTDeclWriter::VisitClassTemplatePartialSpecializationDecl ( ClassTemplatePartialSpecializationDecl D)
void ASTDeclWriter::VisitClassTemplateSpecializationDecl ( ClassTemplateSpecializationDecl D)
void ASTDeclWriter::VisitConstructorUsingShadowDecl ( ConstructorUsingShadowDecl D)
void ASTDeclWriter::VisitCXXConstructorDecl ( CXXConstructorDecl D)
void ASTDeclWriter::VisitCXXConversionDecl ( CXXConversionDecl D)

Definition at line 1249 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_CXX_CONVERSION.

void ASTDeclWriter::VisitCXXDestructorDecl ( CXXDestructorDecl D)
void ASTDeclWriter::VisitCXXMethodDecl ( CXXMethodDecl D)
void ASTDeclWriter::VisitCXXRecordDecl ( CXXRecordDecl D)
void ASTDeclWriter::VisitDecl ( Decl D)

Definition at line 282 of file ASTWriterDecl.cpp.

void ASTDeclWriter::VisitDeclaratorDecl ( DeclaratorDecl D)

Definition at line 499 of file ASTWriterDecl.cpp.

References clang::DeclaratorDecl::getInnerLocStart().

void ASTDeclWriter::VisitDeclContext ( DeclContext DC)

Emit the DeclContext part of a declaration context decl.

Definition at line 1559 of file ASTWriterDecl.cpp.

References Context.

void ASTDeclWriter::VisitEmptyDecl ( EmptyDecl D)

Definition at line 1016 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_EMPTY.

void ASTDeclWriter::VisitEnumConstantDecl ( EnumConstantDecl D)
void ASTDeclWriter::VisitEnumDecl ( EnumDecl D)
void ASTDeclWriter::VisitFieldDecl ( FieldDecl D)
void ASTDeclWriter::VisitFileScopeAsmDecl ( FileScopeAsmDecl D)
void ASTDeclWriter::VisitFriendDecl ( FriendDecl D)
void ASTDeclWriter::VisitFriendTemplateDecl ( FriendTemplateDecl D)
void ASTDeclWriter::VisitFunctionDecl ( FunctionDecl D)

Definition at line 507 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_FUNCTION, clang::FunctionTemplateDecl::getCanonicalDecl(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getDependentSpecializationInfo(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::MemberSpecializationInfo::getInstantiatedFrom(), clang::DependentFunctionTemplateSpecializationInfo::getLAngleLoc(), clang::NamedDecl::getLinkageInternal(), clang::FunctionDecl::getMemberSpecializationInfo(), clang::DependentFunctionTemplateSpecializationInfo::getNumTemplateArgs(), clang::DependentFunctionTemplateSpecializationInfo::getNumTemplates(), clang::FunctionTemplateSpecializationInfo::getPointOfInstantiation(), clang::MemberSpecializationInfo::getPointOfInstantiation(), clang::DependentFunctionTemplateSpecializationInfo::getRAngleLoc(), clang::FunctionTemplateSpecializationInfo::getTemplate(), clang::DependentFunctionTemplateSpecializationInfo::getTemplate(), clang::DependentFunctionTemplateSpecializationInfo::getTemplateArg(), clang::FunctionDecl::getTemplatedKind(), clang::FunctionDecl::getTemplateSpecializationInfo(), clang::FunctionTemplateSpecializationInfo::getTemplateSpecializationKind(), clang::MemberSpecializationInfo::getTemplateSpecializationKind(), clang::ASTTemplateArgumentListInfo::LAngleLoc, clang::ASTTemplateArgumentListInfo::NumTemplateArgs, P, clang::FunctionDecl::param_size(), clang::FunctionDecl::parameters(), clang::ASTTemplateArgumentListInfo::RAngleLoc, clang::FunctionTemplateSpecializationInfo::TemplateArguments, clang::FunctionTemplateSpecializationInfo::TemplateArgumentsAsWritten, clang::FunctionDecl::TK_DependentFunctionTemplateSpecialization, clang::FunctionDecl::TK_FunctionTemplate, clang::FunctionDecl::TK_FunctionTemplateSpecialization, clang::FunctionDecl::TK_MemberSpecialization, and clang::FunctionDecl::TK_NonTemplate.

void ASTDeclWriter::VisitFunctionTemplateDecl ( FunctionTemplateDecl D)
void ASTDeclWriter::VisitImplicitParamDecl ( ImplicitParamDecl D)

Definition at line 957 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_IMPLICIT_PARAM.

void ASTDeclWriter::VisitImportDecl ( ImportDecl D)
void ASTDeclWriter::VisitIndirectFieldDecl ( IndirectFieldDecl D)
void ASTDeclWriter::VisitLabelDecl ( LabelDecl LD)

Definition at line 1067 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_LABEL.

void ASTDeclWriter::VisitLinkageSpecDecl ( LinkageSpecDecl D)
void ASTDeclWriter::VisitMSPropertyDecl ( MSPropertyDecl D)
void ASTDeclWriter::VisitNamedDecl ( NamedDecl D)
void ASTDeclWriter::VisitNamespaceAliasDecl ( NamespaceAliasDecl D)
void ASTDeclWriter::VisitNamespaceDecl ( NamespaceDecl D)
void ASTDeclWriter::VisitNonTypeTemplateParmDecl ( NonTypeTemplateParmDecl D)
void ASTDeclWriter::VisitObjCAtDefsFieldDecl ( ObjCAtDefsFieldDecl D)

Definition at line 752 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_OBJC_AT_DEFS_FIELD.

void ASTDeclWriter::VisitObjCCategoryDecl ( ObjCCategoryDecl D)
void ASTDeclWriter::VisitObjCCategoryImplDecl ( ObjCCategoryImplDecl D)
void ASTDeclWriter::VisitObjCCompatibleAliasDecl ( ObjCCompatibleAliasDecl D)
void ASTDeclWriter::VisitObjCContainerDecl ( ObjCContainerDecl D)
void ASTDeclWriter::VisitObjCImplDecl ( ObjCImplDecl D)

Definition at line 797 of file ASTWriterDecl.cpp.

References clang::ObjCImplDecl::getClassInterface().

void ASTDeclWriter::VisitObjCImplementationDecl ( ObjCImplementationDecl D)
void ASTDeclWriter::VisitObjCInterfaceDecl ( ObjCInterfaceDecl D)
void ASTDeclWriter::VisitObjCIvarDecl ( ObjCIvarDecl D)
void ASTDeclWriter::VisitObjCMethodDecl ( ObjCMethodDecl D)
void ASTDeclWriter::VisitObjCPropertyDecl ( ObjCPropertyDecl D)
void ASTDeclWriter::VisitObjCPropertyImplDecl ( ObjCPropertyImplDecl D)
void ASTDeclWriter::VisitObjCProtocolDecl ( ObjCProtocolDecl D)
void ASTDeclWriter::VisitObjCTypeParamDecl ( ObjCTypeParamDecl D)

Definition at line 654 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_OBJC_TYPE_PARAM.

void ASTDeclWriter::VisitOMPCapturedExprDecl ( OMPCapturedExprDecl D)

Definition at line 1657 of file ASTWriterDecl.cpp.

References clang::serialization::DECL_OMP_CAPTUREDEXPR.

void ASTDeclWriter::VisitOMPDeclareReductionDecl ( OMPDeclareReductionDecl D)
void ASTDeclWriter::VisitOMPThreadPrivateDecl ( OMPThreadPrivateDecl D)
void ASTDeclWriter::VisitParmVarDecl ( ParmVarDecl D)
void ASTDeclWriter::VisitPragmaCommentDecl ( PragmaCommentDecl D)
void ASTDeclWriter::VisitPragmaDetectMismatchDecl ( PragmaDetectMismatchDecl D)
void ASTDeclWriter::VisitRecordDecl ( RecordDecl D)
template<typename T >
void ASTDeclWriter::VisitRedeclarable ( Redeclarable< T > *  D)
void ASTDeclWriter::VisitRedeclarableTemplateDecl ( RedeclarableTemplateDecl D)
void ASTDeclWriter::VisitStaticAssertDecl ( StaticAssertDecl D)
void ASTDeclWriter::VisitTagDecl ( TagDecl D)
void ASTDeclWriter::VisitTemplateDecl ( TemplateDecl D)
void ASTDeclWriter::VisitTemplateTemplateParmDecl ( TemplateTemplateParmDecl D)
void ASTDeclWriter::VisitTemplateTypeParmDecl ( TemplateTypeParmDecl D)
void ASTDeclWriter::VisitTranslationUnitDecl ( TranslationUnitDecl D)

Definition at line 343 of file ASTWriterDecl.cpp.

void ASTDeclWriter::VisitTypeAliasDecl ( TypeAliasDecl D)
void ASTDeclWriter::VisitTypeAliasTemplateDecl ( TypeAliasTemplateDecl D)
void ASTDeclWriter::VisitTypeDecl ( TypeDecl D)
void ASTDeclWriter::VisitTypedefDecl ( TypedefDecl D)
void ASTDeclWriter::VisitTypedefNameDecl ( TypedefNameDecl D)
void ASTDeclWriter::VisitUnresolvedUsingTypenameDecl ( UnresolvedUsingTypenameDecl D)
void ASTDeclWriter::VisitUnresolvedUsingValueDecl ( UnresolvedUsingValueDecl D)
void ASTDeclWriter::VisitUsingDecl ( UsingDecl D)
void ASTDeclWriter::VisitUsingDirectiveDecl ( UsingDirectiveDecl D)
void ASTDeclWriter::VisitUsingShadowDecl ( UsingShadowDecl D)
void ASTDeclWriter::VisitValueDecl ( ValueDecl D)

Definition at line 484 of file ASTWriterDecl.cpp.

References clang::ValueDecl::getType().

void ASTDeclWriter::VisitVarDecl ( VarDecl D)
void ASTDeclWriter::VisitVarTemplateDecl ( VarTemplateDecl D)
void ASTDeclWriter::VisitVarTemplatePartialSpecializationDecl ( VarTemplatePartialSpecializationDecl D)
void ASTDeclWriter::VisitVarTemplateSpecializationDecl ( VarTemplateSpecializationDecl D)

The documentation for this class was generated from the following file: