clang
6.0.0
|
#include "clang/AST/ODRHash.h"
Public Member Functions | |
ODRHash () | |
void | AddCXXRecordDecl (const CXXRecordDecl *Record) |
void | AddFunctionDecl (const FunctionDecl *Function) |
void | AddSubDecl (const Decl *D) |
void | clear () |
unsigned | CalculateHash () |
void | AddDecl (const Decl *D) |
void | AddType (const Type *T) |
void | AddQualType (QualType T) |
void | AddStmt (const Stmt *S) |
void | AddIdentifierInfo (const IdentifierInfo *II) |
void | AddNestedNameSpecifier (const NestedNameSpecifier *NNS) |
void | AddTemplateName (TemplateName Name) |
void | AddDeclarationName (DeclarationName Name) |
void | AddTemplateArgument (TemplateArgument TA) |
void | AddTemplateParameterList (const TemplateParameterList *TPL) |
void | AddBoolean (bool value) |
Static Public Member Functions | |
static bool | isWhitelistedDecl (const Decl *D, const CXXRecordDecl *Record) |
|
inline |
Definition at line 50 of file ODRHash.h.
References AddCXXRecordDecl(), AddDecl(), AddFunctionDecl(), AddQualType(), AddStmt(), AddSubDecl(), AddType(), CalculateHash(), clear(), and clang::T.
void ODRHash::AddBoolean | ( | bool | value | ) |
Definition at line 735 of file ODRHash.cpp.
Referenced by AddCXXRecordDecl(), AddNestedNameSpecifier(), and AddQualType().
void ODRHash::AddCXXRecordDecl | ( | const CXXRecordDecl * | Record | ) |
Definition at line 426 of file ODRHash.cpp.
References AddBoolean(), AddDecl(), AddQualType(), AddSubDecl(), AddTemplateParameterList(), clang::CXXRecordDecl::bases(), clang::DeclContext::decls(), clang::CXXRecordDecl::getDescribedClassTemplate(), clang::CXXRecordDecl::getNumBases(), clang::DeclContext::getParent(), clang::TemplateDecl::getTemplateParameters(), clang::CXXRecordDecl::hasDefinition(), and isWhitelistedDecl().
Referenced by clang::CXXRecordDecl::getODRHash(), and ODRHash().
void ODRHash::AddDecl | ( | const Decl * | D | ) |
Definition at line 504 of file ODRHash.cpp.
References AddDeclarationName(), AddStmt(), clang::Decl::getCanonicalDecl(), clang::Decl::getKind(), and clang::Result.
Referenced by AddCXXRecordDecl(), AddFunctionDecl(), AddNestedNameSpecifier(), AddSubDecl(), and ODRHash().
void ODRHash::AddDeclarationName | ( | DeclarationName | Name | ) |
Definition at line 35 of file ODRHash.cpp.
Referenced by AddDecl().
void ODRHash::AddFunctionDecl | ( | const FunctionDecl * | Function | ) |
Definition at line 469 of file ODRHash.cpp.
References AddDecl(), AddQualType(), AddStmt(), AddSubDecl(), clang::FunctionDecl::getBody(), clang::Decl::getFriendObjectKind(), clang::DeclContext::getParent(), clang::FunctionDecl::getReturnType(), clang::FunctionDecl::hasBody(), clang::FunctionDecl::isDefaulted(), clang::FunctionDecl::isDeleted(), clang::Decl::isImplicit(), clang::FunctionDecl::param_size(), and clang::FunctionDecl::parameters().
Referenced by clang::FunctionDecl::getODRHash(), and ODRHash().
void ODRHash::AddIdentifierInfo | ( | const IdentifierInfo * | II | ) |
Definition at line 30 of file ODRHash.cpp.
References clang::IdentifierInfo::getName().
Referenced by AddNestedNameSpecifier().
void ODRHash::AddNestedNameSpecifier | ( | const NestedNameSpecifier * | NNS | ) |
Definition at line 84 of file ODRHash.cpp.
References AddBoolean(), AddDecl(), AddIdentifierInfo(), AddType(), clang::NestedNameSpecifier::getAsIdentifier(), clang::NestedNameSpecifier::getAsNamespace(), clang::NestedNameSpecifier::getAsNamespaceAlias(), clang::NestedNameSpecifier::getAsType(), clang::NestedNameSpecifier::getKind(), clang::NestedNameSpecifier::getPrefix(), clang::NestedNameSpecifier::Global, clang::NestedNameSpecifier::Identifier, clang::NestedNameSpecifier::Namespace, clang::NestedNameSpecifier::NamespaceAlias, clang::NestedNameSpecifier::Super, clang::NestedNameSpecifier::TypeSpec, and clang::NestedNameSpecifier::TypeSpecWithTemplate.
void ODRHash::AddQualType | ( | QualType | T | ) |
Definition at line 726 of file ODRHash.cpp.
References AddBoolean(), AddType(), clang::Qualifiers::getAsOpaqueValue(), clang::QualType::isNull(), clang::SplitQualType::Quals, clang::QualType::split(), and clang::SplitQualType::Ty.
Referenced by AddCXXRecordDecl(), AddFunctionDecl(), AddTemplateArgument(), and ODRHash().
void ODRHash::AddStmt | ( | const Stmt * | S | ) |
Definition at line 25 of file ODRHash.cpp.
Referenced by AddDecl(), AddFunctionDecl(), AddTemplateArgument(), and ODRHash().
void ODRHash::AddSubDecl | ( | const Decl * | D | ) |
Definition at line 419 of file ODRHash.cpp.
References AddDecl().
Referenced by AddCXXRecordDecl(), AddFunctionDecl(), AddTemplateParameterList(), and ODRHash().
void ODRHash::AddTemplateArgument | ( | TemplateArgument | TA | ) |
Definition at line 131 of file ODRHash.cpp.
References AddQualType(), AddStmt(), AddTemplateName(), clang::TemplateArgument::Declaration, clang::TemplateArgument::Expression, clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsTemplateOrTemplatePattern(), clang::TemplateArgument::getAsType(), clang::TemplateArgument::getKind(), clang::TemplateArgument::Integral, clang::TemplateArgument::Null, clang::TemplateArgument::NullPtr, clang::TemplateArgument::Pack, clang::TemplateArgument::pack_elements(), clang::TemplateArgument::pack_size(), clang::TemplateArgument::Template, clang::TemplateArgument::TemplateExpansion, and clang::TemplateArgument::Type.
void ODRHash::AddTemplateName | ( | TemplateName | Name | ) |
Definition at line 113 of file ODRHash.cpp.
Referenced by AddTemplateArgument().
void ODRHash::AddTemplateParameterList | ( | const TemplateParameterList * | TPL | ) |
Definition at line 161 of file ODRHash.cpp.
References AddSubDecl(), clang::TemplateParameterList::asArray(), and clang::TemplateParameterList::size().
Referenced by AddCXXRecordDecl().
void ODRHash::AddType | ( | const Type * | T | ) |
Definition at line 713 of file ODRHash.cpp.
References clang::Result.
Referenced by AddNestedNameSpecifier(), AddQualType(), and ODRHash().
unsigned ODRHash::CalculateHash | ( | ) |
Definition at line 177 of file ODRHash.cpp.
References CHAR_BIT, and remainder.
Referenced by clang::CXXRecordDecl::getODRHash(), clang::FunctionDecl::getODRHash(), and ODRHash().
void ODRHash::clear | ( | ) |
Definition at line 170 of file ODRHash.cpp.
Referenced by ODRHash().
|
static |
Definition at line 398 of file ODRHash.cpp.
References clang::Decl::getDeclContext(), clang::Decl::getKind(), clang::Decl::isImplicit(), and Parent.
Referenced by AddCXXRecordDecl().