clang
3.7.0
|
#include "clang/Serialization/ASTReader.h"
#include "ASTCommon.h"
#include "ASTReaderInternals.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclGroup.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclVisitor.h"
#include "clang/AST/Expr.h"
#include "clang/Sema/IdentifierResolver.h"
#include "clang/Sema/Sema.h"
#include "clang/Sema/SemaDiagnostic.h"
#include "llvm/Support/SaveAndRestore.h"
#include "clang/Serialization/AttrPCHRead.inc"
#include "clang/AST/DeclNodes.inc"
Go to the source code of this file.
Classes | |
class | clang::ASTDeclReader |
Namespaces | |
clang | |
Macros | |
#define | OR_FIELD(Field) DD.Field |= MergeDD.Field; |
#define | MATCH_FIELD(Field) |
#define | ABSTRACT_DECL(TYPE) |
#define | DECL(TYPE, BASE) |
#define | ABSTRACT_DECL(TYPE) |
#define | DECL(TYPE, BASE) |
#define | ABSTRACT_DECL(TYPE) |
#define | DECL(TYPE, BASE) |
#define | ABSTRACT_DECL(TYPE) |
#define | DECL(TYPE, BASE) |
Functions | |
template<typename DeclT > | |
llvm::iterator_range < MergedRedeclIterator< DeclT > > | merged_redecls (DeclT *D) |
static DeclID * | newDeclIDList (ASTContext &Context, DeclID *Old, SmallVectorImpl< DeclID > &IDs) |
template<typename T > | |
static T | assert_cast (T t) |
"Cast" to type T, asserting if we don't have an implicit conversion. We use this to put code in a template that will only be valid for certain instantiations. More... | |
template<typename T > | |
static T | assert_cast (...) |
static bool | isConsumerInterestedIn (Decl *D, bool HasBody) |
Determine whether the consumer will be interested in seeing this declaration (via HandleTopLevelDecl). More... | |
static bool | isSameTemplateParameterList (const TemplateParameterList *X, const TemplateParameterList *Y) |
Determine whether two template parameter lists are similar enough that they may be used in declarations of the same template. More... | |
static bool | isSameTemplateParameter (const NamedDecl *X, const NamedDecl *Y) |
Determine whether two template parameters are similar enough that they may be used in declarations of the same template. More... | |
static NamespaceDecl * | getNamespace (const NestedNameSpecifier *X) |
static bool | isSameQualifier (const NestedNameSpecifier *X, const NestedNameSpecifier *Y) |
static bool | isSameEntity (NamedDecl *X, NamedDecl *Y) |
Determine whether the two declarations refer to the same entity. More... | |
static NamedDecl * | getDeclForMerging (NamedDecl *Found, bool IsTypedefNameForLinkage) |
template<typename ParmDecl > | |
static bool | inheritDefaultTemplateArgument (ASTContext &Context, ParmDecl *From, Decl *ToD) |
static void | inheritDefaultTemplateArguments (ASTContext &Context, TemplateDecl *From, TemplateDecl *To) |
template<typename DeclT , typename Fn > | |
static void | forAllLaterRedecls (DeclT *D, Fn F) |
#define ABSTRACT_DECL | ( | TYPE | ) |
#define ABSTRACT_DECL | ( | TYPE | ) |
#define ABSTRACT_DECL | ( | TYPE | ) |
#define ABSTRACT_DECL | ( | TYPE | ) |
#define DECL | ( | TYPE, | |
BASE | |||
) |
#define DECL | ( | TYPE, | |
BASE | |||
) |
#define DECL | ( | TYPE, | |
BASE | |||
) |
#define DECL | ( | TYPE, | |
BASE | |||
) |
#define MATCH_FIELD | ( | Field | ) |
#define OR_FIELD | ( | Field | ) | DD.Field |= MergeDD.Field; |
|
static |
"Cast" to type T, asserting if we don't have an implicit conversion. We use this to put code in a template that will only be valid for certain instantiations.
Definition at line 2246 of file ASTReaderDecl.cpp.
|
static |
Definition at line 2247 of file ASTReaderDecl.cpp.
|
static |
Definition at line 3686 of file ASTReaderDecl.cpp.
References clang::Decl::getMostRecentDecl(), and clang::Decl::getPreviousDecl().
Referenced by clang::ASTDeclReader::UpdateDecl().
Find the declaration that should be merged into, given the declaration found by name lookup. If we're merging an anonymous declaration within a typedef, we need a matching typedef, and we merge with the type inside it.
Definition at line 2743 of file ASTReaderDecl.cpp.
References clang::Decl::isFromASTFile().
|
static |
Definition at line 2486 of file ASTReaderDecl.cpp.
References clang::NestedNameSpecifier::getAsNamespace(), and clang::NestedNameSpecifier::getAsNamespaceAlias().
Referenced by isSameQualifier().
|
static |
Inherit the default template argument from From
to To
. Returns false
if there is no default template for From
.
Definition at line 2980 of file ASTReaderDecl.cpp.
Referenced by inheritDefaultTemplateArguments().
|
static |
Definition at line 2989 of file ASTReaderDecl.cpp.
References clang::TemplateDecl::getTemplateParameters(), and inheritDefaultTemplateArgument().
Referenced by clang::ASTDeclReader::attachPreviousDecl().
Determine whether the consumer will be interested in seeing this declaration (via HandleTopLevelDecl).
This routine should return true for anything that might affect code generation, e.g., inline function definitions, Objective-C declarations with metadata, etc.
Definition at line 2408 of file ASTReaderDecl.cpp.
References clang::VarDecl::Definition.
Determine whether the two declarations refer to the same entity.
Definition at line 2548 of file ASTReaderDecl.cpp.
References clang::DeclContext::Equals(), clang::Decl::getASTContext(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::Decl::getKind(), clang::NamedDecl::getLinkageInternal(), clang::DeclContext::getRedeclContext(), clang::TagDecl::getTagKind(), clang::UsingShadowDecl::getTargetDecl(), clang::TemplateDecl::getTemplatedDecl(), clang::TemplateDecl::getTemplateParameters(), clang::ValueDecl::getType(), clang::ASTContext::hasSameType(), clang::NamespaceDecl::isInline(), isSameQualifier(), isSameTemplateParameterList(), clang::TTK_Class, clang::TTK_Interface, clang::TTK_Struct, and X.
|
static |
Definition at line 2494 of file ASTReaderDecl.cpp.
References clang::NestedNameSpecifier::getAsIdentifier(), clang::NestedNameSpecifier::getAsType(), clang::Type::getCanonicalTypeInternal(), clang::NestedNameSpecifier::getKind(), getNamespace(), 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.
Referenced by isSameEntity().
Determine whether two template parameters are similar enough that they may be used in declarations of the same template.
Definition at line 2463 of file ASTReaderDecl.cpp.
References clang::Decl::getKind(), clang::TemplateDecl::getTemplateParameters(), clang::ValueDecl::getType(), clang::TemplateTypeParmDecl::isParameterPack(), clang::NonTypeTemplateParmDecl::isParameterPack(), clang::TemplateTemplateParmDecl::isParameterPack(), isSameTemplateParameterList(), and X.
Referenced by isSameTemplateParameterList().
|
static |
Determine whether two template parameter lists are similar enough that they may be used in declarations of the same template.
Definition at line 2535 of file ASTReaderDecl.cpp.
References clang::TemplateParameterList::getParam(), isSameTemplateParameter(), and clang::TemplateParameterList::size().
Referenced by isSameEntity(), and isSameTemplateParameter().
llvm::iterator_range<MergedRedeclIterator<DeclT> > merged_redecls | ( | DeclT * | D | ) |
Definition at line 436 of file ASTReaderDecl.cpp.
Referenced by clang::ASTDeclReader::UpdateDecl(), and clang::ASTDeclReader::VisitEnumDecl().
|
static |
Definition at line 1850 of file ASTReaderDecl.cpp.
References Context, and clang::Result.
Referenced by clang::ASTDeclReader::VisitClassTemplateDecl(), clang::ASTDeclReader::VisitFunctionTemplateDecl(), and clang::ASTDeclReader::VisitVarTemplateDecl().