15#ifndef LLVM_CLANG_AST_ODRHASH_H
16#define LLVM_CLANG_AST_ODRHASH_H
21#include "llvm/ADT/DenseMap.h"
22#include "llvm/ADT/FoldingSet.h"
23#include "llvm/ADT/PointerUnion.h"
24#include "llvm/ADT/SmallVector.h"
31class NestedNameSpecifier;
33class TemplateParameterList;
45 llvm::DenseMap<DeclarationName, unsigned> DeclNameMap;
50 llvm::FoldingSetNodeID ID;
llvm::MachO::Record Record
C Language Family Type Representation.
APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat],...
Represents a C++ struct/union/class.
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...
Decl - This represents one declaration (or definition), e.g.
The name of a declaration.
Represents a function declaration or definition.
One of these records is kept for each identifier that is lexed.
Represents a C++ nested name specifier, such as "\::std::vector<int>::".
void AddDecl(const Decl *D)
void AddStmt(const Stmt *S)
void AddStructuralValue(const APValue &)
void AddCXXRecordDecl(const CXXRecordDecl *Record)
void AddIdentifierInfo(const IdentifierInfo *II)
void AddObjCProtocolDecl(const ObjCProtocolDecl *P)
void AddDeclarationName(DeclarationName Name, bool TreatAsDecl=false)
void AddObjCInterfaceDecl(const ObjCInterfaceDecl *Record)
void AddType(const Type *T)
void AddEnumDecl(const EnumDecl *Enum)
void AddNestedNameSpecifier(const NestedNameSpecifier *NNS)
void AddFunctionDecl(const FunctionDecl *Function, bool SkipBody=false)
void AddBoolean(bool value)
void AddTemplateName(TemplateName Name)
void AddRecordDecl(const RecordDecl *Record)
void AddSubDecl(const Decl *D)
void AddQualType(QualType T)
void AddTemplateParameterList(const TemplateParameterList *TPL)
void AddTemplateArgument(TemplateArgument TA)
static bool isSubDeclToBeProcessed(const Decl *D, const DeclContext *Parent)
Represents an ObjC class declaration.
Represents an Objective-C protocol declaration.
A (possibly-)qualified type.
Represents a struct/union/class.
Stmt - This represents one statement.
Represents a template argument.
Represents a C++ template name within the type system.
Stores a list of template parameters for a TemplateDecl and its derived classes.
The base class of the type hierarchy.
@ Decl
The l-value was an access to a declared entity or something equivalently strong, like the address of ...
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T
@ Enum
The "enum" keyword introduces the elaborated-type-specifier.