16 #ifndef LLVM_CLANG_AST_ODRHASH_H 17 #define LLVM_CLANG_AST_ODRHASH_H 22 #include "llvm/ADT/DenseMap.h" 23 #include "llvm/ADT/FoldingSet.h" 24 #include "llvm/ADT/PointerUnion.h" 25 #include "llvm/ADT/SmallVector.h" 31 class NestedNameSpecifier;
33 class TemplateParameterList;
45 llvm::DenseMap<DeclarationName, unsigned> DeclNameMap;
50 llvm::FoldingSetNodeID ID;
Represents a function declaration or definition.
A (possibly-)qualified type.
void AddBoolean(bool value)
void AddDeclarationName(DeclarationName Name, bool TreatAsDecl=false)
Stmt - This represents one statement.
void AddQualType(QualType T)
C Language Family Type Representation.
Decl - This represents one declaration (or definition), e.g.
The base class of the type hierarchy.
The l-value was an access to a declared entity or something equivalently strong, like the address of ...
Stores a list of template parameters for a TemplateDecl and its derived classes.
void AddTemplateArgument(TemplateArgument TA)
One of these records is kept for each identifier that is lexed.
void AddTemplateParameterList(const TemplateParameterList *TPL)
void AddDecl(const Decl *D)
void AddFunctionDecl(const FunctionDecl *Function, bool SkipBody=false)
void AddTemplateName(TemplateName Name)
Represents a C++ template name within the type system.
void AddType(const Type *T)
void AddIdentifierInfo(const IdentifierInfo *II)
Represents a C++ nested name specifier, such as "\::std::vector<int>::".
void AddNestedNameSpecifier(const NestedNameSpecifier *NNS)
void AddSubDecl(const Decl *D)
void AddEnumDecl(const EnumDecl *Enum)
Represents a template argument.
Dataflow Directional Tag Classes.
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...
void AddCXXRecordDecl(const CXXRecordDecl *Record)
The name of a declaration.
Represents a C++ struct/union/class.
void AddStmt(const Stmt *S)
static bool isWhitelistedDecl(const Decl *D, const DeclContext *Parent)