|
clang 24.0.0git
|
#include "ASTCommon.h"#include "ASTReaderInternals.h"#include "clang/AST/ASTConcept.h"#include "clang/AST/ASTContext.h"#include "clang/AST/ASTStructuralEquivalence.h"#include "clang/AST/Attr.h"#include "clang/AST/AttrIterator.h"#include "clang/AST/Decl.h"#include "clang/AST/DeclBase.h"#include "clang/AST/DeclCXX.h"#include "clang/AST/DeclFriend.h"#include "clang/AST/DeclObjC.h"#include "clang/AST/DeclOpenMP.h"#include "clang/AST/DeclTemplate.h"#include "clang/AST/DeclVisitor.h"#include "clang/AST/DeclarationName.h"#include "clang/AST/Expr.h"#include "clang/AST/ExternalASTSource.h"#include "clang/AST/LambdaCapture.h"#include "clang/AST/NestedNameSpecifier.h"#include "clang/AST/OpenMPClause.h"#include "clang/AST/Redeclarable.h"#include "clang/AST/Stmt.h"#include "clang/AST/TemplateBase.h"#include "clang/AST/Type.h"#include "clang/AST/UnresolvedSet.h"#include "clang/Basic/AttrKinds.h"#include "clang/Basic/DiagnosticSema.h"#include "clang/Basic/ExceptionSpecificationType.h"#include "clang/Basic/IdentifierTable.h"#include "clang/Basic/LLVM.h"#include "clang/Basic/Lambda.h"#include "clang/Basic/LangOptions.h"#include "clang/Basic/Linkage.h"#include "clang/Basic/Module.h"#include "clang/Basic/PragmaKinds.h"#include "clang/Basic/SourceLocation.h"#include "clang/Basic/Specifiers.h"#include "clang/Sema/IdentifierResolver.h"#include "clang/Serialization/ASTBitCodes.h"#include "clang/Serialization/ASTRecordReader.h"#include "clang/Serialization/ContinuousRangeMap.h"#include "clang/Serialization/ModuleFile.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/FoldingSet.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/iterator_range.h"#include "llvm/Bitstream/BitstreamReader.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/SaveAndRestore.h"#include <algorithm>#include <cassert>#include <cstdint>#include <cstring>#include <string>#include <utility>#include "clang/AST/CXXRecordDeclDefinitionBits.def"#include "clang/Serialization/AttrPCHRead.inc"#include "clang/AST/DeclNodes.inc"Go to the source code of this file.
Classes | |
| class | clang::ASTDeclMerger |
| class | clang::ASTDeclReader |
Namespaces | |
| namespace | clang |
| Top level wrappers for InstallAPI frontend operations. | |
Macros | |
| #define | FIELD(Name, Width, Merge) |
| #define | FIELD(Name, Width, Merge) |
| #define | MERGE_OR(Field) |
| #define | NO_MERGE(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> | |
| static llvm::iterator_range< MergedRedeclIterator< DeclT > > | merged_redecls (DeclT *D) |
| template<typename T> | |
| static T | assert_cast (T t) |
| "Cast" to type T, asserting if we don't have an implicit conversion. | |
| template<typename T> | |
| static T | assert_cast (...) |
| static bool | allowODRLikeMergeInC (NamedDecl *ND) |
| ODR-like semantics for C/ObjC allow us to merge tag types and a structural check in Sema guarantees the types can be merged (see C11 6.2.7/1 or C89 6.1.2.6/1). | |
| static NamedDecl * | getDeclForMerging (NamedDecl *Found, bool IsTypedefNameForLinkage, bool FilteringUsingShadowDecl) |
| Find the declaration that should be merged into, given the declaration found by name lookup. | |
| static bool | clang::isUndeducedReturnType (QualType T) |
| template<typename ParmDecl> | |
| static bool | inheritDefaultTemplateArgument (ASTContext &Context, ParmDecl *From, Decl *ToD) |
Inherit the default template argument from From to To. | |
| 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 FIELD | ( | Name, | |
| Width, | |||
| Merge ) |
| #define FIELD | ( | Name, | |
| Width, | |||
| Merge ) |
| #define MERGE_OR | ( | Field | ) |
| #define NO_MERGE | ( | Field | ) |
Referenced by clang::ASTDeclMerger::MergeDefinitionData().
ODR-like semantics for C/ObjC allow us to merge tag types and a structural check in Sema guarantees the types can be merged (see C11 6.2.7/1 or C89 6.1.2.6/1).
Although most merging is done in Sema, we need to guarantee that some types are mergeable during deserialization, otherwise name lookup fails. This is the case for EnumConstantDecl.
Definition at line 3076 of file ASTReaderDecl.cpp.
References clang::isa().
Referenced by clang::ASTDeclReader::mergeMergeable().
|
static |
Definition at line 2994 of file ASTReaderDecl.cpp.
References clang::T.
|
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 2993 of file ASTReaderDecl.cpp.
References clang::T.
Referenced by clang::ASTDeclMerger::mergeRedeclarableImpl().
|
static |
Definition at line 4766 of file ASTReaderDecl.cpp.
References clang::Found, clang::Decl::getMostRecentDecl(), and clang::Decl::getPreviousDecl().
Referenced by clang::ASTDeclReader::UpdateDecl().
|
static |
Find the declaration that should be merged into, given the declaration found by name lookup.
If we're not merging with a UsingShadowDecl but Found is a UsingShadowDecl, we need to skip the UsingShadowDecl. 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 3445 of file ASTReaderDecl.cpp.
References clang::Found, and getDeclForMerging().
Referenced by getDeclForMerging().
|
static |
Inherit the default template argument from From to To.
Returns false if there is no default template for From.
Definition at line 3812 of file ASTReaderDecl.cpp.
References clang::cast().
Referenced by inheritDefaultTemplateArguments().
|
static |
Definition at line 3821 of file ASTReaderDecl.cpp.
References clang::cast(), clang::TemplateDecl::getTemplateParameters(), and inheritDefaultTemplateArgument().
Referenced by clang::ASTDeclReader::attachPreviousDecl().
|
static |
Definition at line 501 of file ASTReaderDecl.cpp.
Referenced by clang::ASTDeclReader::VisitEnumDecl(), and clang::ASTDeclReader::VisitRecordDecl().