clang 20.0.0git
|
#include "ASTCommon.h"
#include "ASTReaderInternals.h"
#include "MultiOnDiskHashTable.h"
#include "TemplateArgumentHasher.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTUnresolvedSet.h"
#include "clang/AST/AbstractTypeWriter.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclContextInternals.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/LambdaCapture.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/OpenACCClause.h"
#include "clang/AST/OpenMPClause.h"
#include "clang/AST/RawCommentList.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/AST/TypeLocVisitor.h"
#include "clang/Basic/AttrKinds.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Basic/FileEntry.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/FileSystemOptions.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Lambda.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/OpenACCKinds.h"
#include "clang/Basic/OpenCLOptions.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/SourceManagerInternals.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/TargetOptions.h"
#include "clang/Basic/Version.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/MacroInfo.h"
#include "clang/Lex/ModuleMap.h"
#include "clang/Lex/PreprocessingRecord.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Lex/PreprocessorOptions.h"
#include "clang/Lex/Token.h"
#include "clang/Sema/IdentifierResolver.h"
#include "clang/Sema/ObjCMethodList.h"
#include "clang/Sema/Sema.h"
#include "clang/Sema/SemaCUDA.h"
#include "clang/Sema/SemaObjC.h"
#include "clang/Sema/Weak.h"
#include "clang/Serialization/ASTBitCodes.h"
#include "clang/Serialization/ASTReader.h"
#include "clang/Serialization/ASTRecordWriter.h"
#include "clang/Serialization/InMemoryModuleCache.h"
#include "clang/Serialization/ModuleFile.h"
#include "clang/Serialization/ModuleFileExtension.h"
#include "clang/Serialization/SerializationDiagnostic.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Bitstream/BitCodes.h"
#include "llvm/Bitstream/BitstreamWriter.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/DJB.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/OnDiskHashTable.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SHA1.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <limits>
#include <memory>
#include <optional>
#include <queue>
#include <tuple>
#include <utility>
#include <vector>
#include "clang/Serialization/TypeBitCodes.def"
#include "clang/AST/TypeLocNodes.def"
#include "clang/Basic/DiagnosticOptions.def"
#include "clang/Basic/LangOptions.def"
#include "clang/Basic/Sanitizers.def"
#include "clang/Serialization/AttrPCHWrite.inc"
#include "clang/AST/CXXRecordDeclDefinitionBits.def"
#include "llvm/Frontend/OpenMP/OMP.inc"
Go to the source code of this file.
Macros | |
#define | TYPE_BIT_CODE(CLASS_ID, CODE_ID, CODE_VALUE) case Type::CLASS_ID: return TYPE_##CODE_ID; |
#define | ABSTRACT_TYPELOC(CLASS, PARENT) |
#define | TYPELOC(CLASS, PARENT) void Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc); |
#define | RECORD(X) EmitRecordID(X, #X, Stream, Record) |
#define | BLOCK(X) EmitBlockID(X ## _ID, #X, Stream, Record) |
#define | RECORD(X) EmitRecordID(X, #X, Stream, Record) |
#define | DIAGOPT(Name, Bits, Default) Record.push_back(DiagOpts.Name); |
#define | ENUM_DIAGOPT(Name, Type, Bits, Default) Record.push_back(static_cast<unsigned>(DiagOpts.get##Name())); |
#define | LANGOPT(Name, Bits, Default, Description) Record.push_back(LangOpts.Name); |
#define | ENUM_LANGOPT(Name, Type, Bits, Default, Description) Record.push_back(static_cast<unsigned>(LangOpts.get##Name())); |
#define | SANITIZER(NAME, ID) Record.push_back(LangOpts.Sanitize.has(SanitizerKind::ID)); |
#define | FIELD(Name, Width, Merge) |
#define | GEN_CLANG_CLAUSE_CLASS |
#define | CLAUSE_CLASS(Enum, Str, Class) void Visit##Class(Class *S); |
Functions | |
template<typename T , typename Allocator > | |
static StringRef | bytes (const std::vector< T, Allocator > &v) |
template<typename T > | |
static StringRef | bytes (const SmallVectorImpl< T > &v) |
static std::string | bytes (const std::vector< bool > &V) |
static TypeCode | getTypeCodeForTypeClass (Type::TypeClass id) |
static void | EmitBlockID (unsigned ID, const char *Name, llvm::BitstreamWriter &Stream, ASTWriter::RecordDataImpl &Record) |
static void | EmitRecordID (unsigned ID, const char *Name, llvm::BitstreamWriter &Stream, ASTWriter::RecordDataImpl &Record) |
static void | AddStmtsExprs (llvm::BitstreamWriter &Stream, ASTWriter::RecordDataImpl &Record) |
static bool | cleanPathForOutput (FileManager &FileMgr, SmallVectorImpl< char > &Path) |
Prepares a path for being written to an AST file by converting it to an absolute path and removing nested '. | |
static const char * | adjustFilenameForRelocatableAST (const char *Filename, StringRef BaseDir) |
Adjusts the given filename to only write out the portion of the filename that is not part of the system root directory. | |
static void | BackpatchSignatureAt (llvm::BitstreamWriter &Stream, const ASTFileSignature &S, uint64_t BitNo) |
static unsigned | CreateSLocFileAbbrev (llvm::BitstreamWriter &Stream) |
Create an abbreviation for the SLocEntry that refers to a file. | |
static unsigned | CreateSLocBufferAbbrev (llvm::BitstreamWriter &Stream) |
Create an abbreviation for the SLocEntry that refers to a buffer. | |
static unsigned | CreateSLocBufferBlobAbbrev (llvm::BitstreamWriter &Stream, bool Compressed) |
Create an abbreviation for the SLocEntry that refers to a buffer's blob. | |
static unsigned | CreateSLocExpansionAbbrev (llvm::BitstreamWriter &Stream) |
Create an abbreviation for the SLocEntry that refers to a macro expansion. | |
static std::pair< unsigned, unsigned > | emitULEBKeyDataLength (unsigned KeyLen, unsigned DataLen, raw_ostream &Out) |
Emit key length and data length as ULEB-encoded data, and return them as a pair. | |
static void | emitBlob (llvm::BitstreamWriter &Stream, StringRef Blob, unsigned SLocBufferBlobCompressedAbbrv, unsigned SLocBufferBlobAbbrv) |
static bool | shouldIgnoreMacro (MacroDirective *MD, bool IsModule, const Preprocessor &PP) |
static unsigned | getNumberOfModules (Module *Mod) |
Compute the number of modules within the given tree (including the given module). | |
static bool | IsInternalDeclFromFileContext (const Decl *D) |
static NamedDecl * | getDeclForLocalLookup (const LangOptions &LangOpts, NamedDecl *D) |
Determine the declaration that should be put into the name lookup table to represent the given declaration in this module. | |
static bool | isLocalIdentifierID (IdentifierID ID) |
If the. | |
static bool | isLookupResultNotInteresting (ASTWriter &Writer, StoredDeclsList &Result) |
Returns ture if all of the lookup result are either external, not emitted or predefined. | |
template<typename Vector > | |
static void | AddLazyVectorDecls (ASTWriter &Writer, Vector &Vec) |
template<typename Vector > | |
static void | AddLazyVectorEmiitedDecls (ASTWriter &Writer, Vector &Vec, ASTWriter::RecordData &Record) |
template<typename IdxForTypeTy > | |
static TypeID | MakeTypeID (ASTContext &Context, QualType T, IdxForTypeTy IdxForType) |
static uint64_t | EmitCXXBaseSpecifiers (ASTContext &Context, ASTWriter &W, ArrayRef< CXXBaseSpecifier > Bases) |
static uint64_t | EmitCXXCtorInitializers (ASTContext &Context, ASTWriter &W, ArrayRef< CXXCtorInitializer * > CtorInits) |
static bool | isImportedDeclContext (ASTReader *Chain, const Decl *D) |
#define ABSTRACT_TYPELOC | ( | CLASS, | |
PARENT | |||
) |
Definition at line 353 of file ASTWriter.cpp.
#define BLOCK | ( | X | ) | EmitBlockID(X ## _ID, #X, Stream, Record) |
#define CLAUSE_CLASS | ( | Enum, | |
Str, | |||
Class | |||
) | void Visit##Class(Class *S); |
Definition at line 7700 of file ASTWriter.cpp.
#define DIAGOPT | ( | Name, | |
Bits, | |||
Default | |||
) | Record.push_back(DiagOpts.Name); |
#define ENUM_DIAGOPT | ( | Name, | |
Type, | |||
Bits, | |||
Default | |||
) | Record.push_back(static_cast<unsigned>(DiagOpts.get##Name())); |
#define ENUM_LANGOPT | ( | Name, | |
Type, | |||
Bits, | |||
Default, | |||
Description | |||
) | Record.push_back(static_cast<unsigned>(LangOpts.get##Name())); |
#define FIELD | ( | Name, | |
Width, | |||
Merge | |||
) |
#define GEN_CLANG_CLAUSE_CLASS |
Definition at line 7699 of file ASTWriter.cpp.
#define LANGOPT | ( | Name, | |
Bits, | |||
Default, | |||
Description | |||
) | Record.push_back(LangOpts.Name); |
#define RECORD | ( | X | ) | EmitRecordID(X, #X, Stream, Record) |
#define RECORD | ( | X | ) | EmitRecordID(X, #X, Stream, Record) |
#define SANITIZER | ( | NAME, | |
ID | |||
) | Record.push_back(LangOpts.Sanitize.has(SanitizerKind::ID)); |
#define TYPE_BIT_CODE | ( | CLASS_ID, | |
CODE_ID, | |||
CODE_VALUE | |||
) | case Type::CLASS_ID: return TYPE_##CODE_ID; |
Definition at line 354 of file ASTWriter.cpp.
|
static |
Definition at line 5405 of file ASTWriter.cpp.
References E, and clang::ASTWriter::GetDeclRef().
|
static |
Definition at line 5413 of file ASTWriter.cpp.
References clang::ASTWriter::AddEmittedDeclRef(), and E.
|
static |
Definition at line 755 of file ASTWriter.cpp.
References clang::serialization::EXPR_ADDR_LABEL, clang::serialization::EXPR_ARRAY_SUBSCRIPT, clang::serialization::EXPR_ARRAY_TYPE_TRAIT, clang::serialization::EXPR_BINARY_CONDITIONAL_OPERATOR, clang::serialization::EXPR_BINARY_OPERATOR, clang::serialization::EXPR_BLOCK, clang::serialization::EXPR_CALL, clang::serialization::EXPR_CHARACTER_LITERAL, clang::serialization::EXPR_CHOOSE, clang::serialization::EXPR_COMPOUND_ASSIGN_OPERATOR, clang::serialization::EXPR_COMPOUND_LITERAL, clang::serialization::EXPR_CONDITIONAL_OPERATOR, clang::serialization::EXPR_CSTYLE_CAST, clang::serialization::EXPR_CUDA_KERNEL_CALL, clang::serialization::EXPR_CXX_ADDRSPACE_CAST, clang::serialization::EXPR_CXX_BIND_TEMPORARY, clang::serialization::EXPR_CXX_BOOL_LITERAL, clang::serialization::EXPR_CXX_CONST_CAST, clang::serialization::EXPR_CXX_CONSTRUCT, clang::serialization::EXPR_CXX_DEFAULT_ARG, clang::serialization::EXPR_CXX_DEFAULT_INIT, clang::serialization::EXPR_CXX_DELETE, clang::serialization::EXPR_CXX_DEPENDENT_SCOPE_DECL_REF, clang::serialization::EXPR_CXX_DEPENDENT_SCOPE_MEMBER, clang::serialization::EXPR_CXX_DYNAMIC_CAST, clang::serialization::EXPR_CXX_EXPRESSION_TRAIT, clang::serialization::EXPR_CXX_FUNCTIONAL_CAST, clang::serialization::EXPR_CXX_MEMBER_CALL, clang::serialization::EXPR_CXX_NEW, clang::serialization::EXPR_CXX_NOEXCEPT, clang::serialization::EXPR_CXX_NULL_PTR_LITERAL, clang::serialization::EXPR_CXX_OPERATOR_CALL, clang::serialization::EXPR_CXX_PAREN_LIST_INIT, clang::serialization::EXPR_CXX_PSEUDO_DESTRUCTOR, clang::serialization::EXPR_CXX_REINTERPRET_CAST, clang::serialization::EXPR_CXX_REWRITTEN_BINARY_OPERATOR, clang::serialization::EXPR_CXX_SCALAR_VALUE_INIT, clang::serialization::EXPR_CXX_STATIC_CAST, clang::serialization::EXPR_CXX_STD_INITIALIZER_LIST, clang::serialization::EXPR_CXX_TEMPORARY_OBJECT, clang::serialization::EXPR_CXX_THIS, clang::serialization::EXPR_CXX_THROW, clang::serialization::EXPR_CXX_TYPEID_EXPR, clang::serialization::EXPR_CXX_TYPEID_TYPE, clang::serialization::EXPR_CXX_UNRESOLVED_CONSTRUCT, clang::serialization::EXPR_CXX_UNRESOLVED_LOOKUP, clang::serialization::EXPR_CXX_UNRESOLVED_MEMBER, clang::serialization::EXPR_CXX_UUIDOF_EXPR, clang::serialization::EXPR_CXX_UUIDOF_TYPE, clang::serialization::EXPR_DECL_REF, clang::serialization::EXPR_DESIGNATED_INIT, clang::serialization::EXPR_DESIGNATED_INIT_UPDATE, clang::serialization::EXPR_EXPR_WITH_CLEANUPS, clang::serialization::EXPR_EXT_VECTOR_ELEMENT, clang::serialization::EXPR_FIXEDPOINT_LITERAL, clang::serialization::EXPR_FLOATING_LITERAL, clang::serialization::EXPR_FUNCTION_PARM_PACK, clang::serialization::EXPR_GENERIC_SELECTION, clang::serialization::EXPR_GNU_NULL, clang::serialization::EXPR_IMAGINARY_LITERAL, clang::serialization::EXPR_IMPLICIT_CAST, clang::serialization::EXPR_IMPLICIT_VALUE_INIT, clang::serialization::EXPR_INIT_LIST, clang::serialization::EXPR_INTEGER_LITERAL, clang::serialization::EXPR_LAMBDA, clang::serialization::EXPR_MATERIALIZE_TEMPORARY, clang::serialization::EXPR_MEMBER, clang::serialization::EXPR_NO_INIT, clang::serialization::EXPR_OBJC_ARRAY_LITERAL, clang::serialization::EXPR_OBJC_BOOL_LITERAL, clang::serialization::EXPR_OBJC_BOXED_EXPRESSION, clang::serialization::EXPR_OBJC_DICTIONARY_LITERAL, clang::serialization::EXPR_OBJC_ENCODE, clang::serialization::EXPR_OBJC_IVAR_REF_EXPR, clang::serialization::EXPR_OBJC_KVC_REF_EXPR, clang::serialization::EXPR_OBJC_MESSAGE_EXPR, clang::serialization::EXPR_OBJC_PROPERTY_REF_EXPR, clang::serialization::EXPR_OBJC_PROTOCOL_EXPR, clang::serialization::EXPR_OBJC_SELECTOR_EXPR, clang::serialization::EXPR_OBJC_STRING_LITERAL, clang::serialization::EXPR_OPAQUE_VALUE, clang::serialization::EXPR_PACK_EXPANSION, clang::serialization::EXPR_PACK_INDEXING, clang::serialization::EXPR_PAREN, clang::serialization::EXPR_PAREN_LIST, clang::serialization::EXPR_PREDEFINED, clang::serialization::EXPR_SHUFFLE_VECTOR, clang::serialization::EXPR_SIZEOF_ALIGN_OF, clang::serialization::EXPR_SIZEOF_PACK, clang::serialization::EXPR_STMT, clang::serialization::EXPR_STRING_LITERAL, clang::serialization::EXPR_SUBST_NON_TYPE_TEMPLATE_PARM, clang::serialization::EXPR_SUBST_NON_TYPE_TEMPLATE_PARM_PACK, clang::serialization::EXPR_TYPE_TRAIT, clang::serialization::EXPR_UNARY_OPERATOR, clang::serialization::EXPR_USER_DEFINED_LITERAL, clang::serialization::EXPR_VA_ARG, RECORD, clang::serialization::STMT_ATTRIBUTED, clang::serialization::STMT_BREAK, clang::serialization::STMT_CASE, clang::serialization::STMT_COMPOUND, clang::serialization::STMT_CONTINUE, clang::serialization::STMT_CXX_CATCH, clang::serialization::STMT_CXX_FOR_RANGE, clang::serialization::STMT_CXX_TRY, clang::serialization::STMT_DECL, clang::serialization::STMT_DEFAULT, clang::serialization::STMT_DO, clang::serialization::STMT_FOR, clang::serialization::STMT_GCCASM, clang::serialization::STMT_GOTO, clang::serialization::STMT_IF, clang::serialization::STMT_INDIRECT_GOTO, clang::serialization::STMT_LABEL, clang::serialization::STMT_MSASM, clang::serialization::STMT_NULL, clang::serialization::STMT_NULL_PTR, clang::serialization::STMT_OBJC_AT_SYNCHRONIZED, clang::serialization::STMT_OBJC_AT_THROW, clang::serialization::STMT_OBJC_AT_TRY, clang::serialization::STMT_OBJC_CATCH, clang::serialization::STMT_OBJC_FINALLY, clang::serialization::STMT_OBJC_FOR_COLLECTION, clang::serialization::STMT_REF_PTR, clang::serialization::STMT_RETURN, clang::serialization::STMT_STOP, clang::serialization::STMT_SWITCH, and clang::serialization::STMT_WHILE.
|
static |
Adjusts the given filename to only write out the portion of the filename that is not part of the system root directory.
Filename | the file name to adjust. |
BaseDir | When non-NULL, the PCH file is a relocatable AST file and the returned filename will be adjusted by this root directory. |
Filename
parameter). Definition at line 1187 of file ASTWriter.cpp.
References Filename.
Referenced by clang::ASTWriter::PreparePathForOutput().
|
static |
Definition at line 1284 of file ASTWriter.cpp.
|
static |
Definition at line 139 of file ASTWriter.cpp.
|
static |
Definition at line 144 of file ASTWriter.cpp.
|
static |
Definition at line 132 of file ASTWriter.cpp.
Referenced by clang::SemaObjC::BuildObjCBoxedExpr(), bytesSincePreviousTabOrLineBegin(), clang::driver::tools::Clang::ConstructJob(), clang::ASTReader::getMemoryBufferSizes(), operator new(), clang::Stmt::operator new(), and clang::PreprocessedEntity::operator new().
|
static |
Prepares a path for being written to an AST file by converting it to an absolute path and removing nested '.
/'s.
true
if the path was changed. Definition at line 1170 of file ASTWriter.cpp.
References clang::FileManager::makeAbsolutePath(), and Path.
Referenced by clang::ASTWriter::PreparePathForOutput().
|
static |
Create an abbreviation for the SLocEntry that refers to a buffer.
Definition at line 1963 of file ASTWriter.cpp.
References clang::serialization::SM_SLOC_BUFFER_ENTRY.
|
static |
Create an abbreviation for the SLocEntry that refers to a buffer's blob.
Definition at line 1978 of file ASTWriter.cpp.
References clang::serialization::SM_SLOC_BUFFER_BLOB, and clang::serialization::SM_SLOC_BUFFER_BLOB_COMPRESSED.
|
static |
Create an abbreviation for the SLocEntry that refers to a macro expansion.
Definition at line 1993 of file ASTWriter.cpp.
References clang::serialization::SM_SLOC_EXPANSION_ENTRY.
|
static |
Create an abbreviation for the SLocEntry that refers to a file.
Definition at line 1944 of file ASTWriter.cpp.
References clang::serialization::SM_SLOC_FILE_ENTRY.
|
static |
Definition at line 2261 of file ASTWriter.cpp.
References clang::serialization::SM_SLOC_BUFFER_BLOB, and clang::serialization::SM_SLOC_BUFFER_BLOB_COMPRESSED.
|
static |
Definition at line 729 of file ASTWriter.cpp.
|
static |
Definition at line 7118 of file ASTWriter.cpp.
References clang::ASTRecordWriter::AddCXXBaseSpecifier(), clang::serialization::DECL_CXX_BASE_SPECIFIERS, clang::ASTRecordWriter::Emit(), and clang::ASTRecordWriter::push_back().
Referenced by clang::ASTRecordWriter::AddCXXBaseSpecifiers().
|
static |
Definition at line 7136 of file ASTWriter.cpp.
References clang::ASTRecordWriter::AddDeclRef(), clang::ASTRecordWriter::AddSourceLocation(), clang::ASTRecordWriter::AddStmt(), clang::ASTRecordWriter::AddTypeSourceInfo(), clang::serialization::CTOR_INITIALIZER_BASE, clang::serialization::CTOR_INITIALIZER_DELEGATING, clang::serialization::CTOR_INITIALIZER_INDIRECT_MEMBER, clang::serialization::CTOR_INITIALIZER_MEMBER, clang::serialization::DECL_CXX_CTOR_INITIALIZERS, clang::ASTRecordWriter::Emit(), clang::Init, and clang::ASTRecordWriter::push_back().
Referenced by clang::ASTRecordWriter::AddCXXCtorInitializers().
|
static |
Definition at line 745 of file ASTWriter.cpp.
|
static |
Emit key length and data length as ULEB-encoded data, and return them as a pair.
Definition at line 2010 of file ASTWriter.cpp.
|
static |
Determine the declaration that should be put into the name lookup table to represent the given declaration in this module.
This is usually D itself, but if D was imported and merged into a local declaration, we want the most recent local declaration instead. The chosen declaration will be the most recent declaration in any module that imports this one.
Definition at line 3749 of file ASTWriter.cpp.
References D, clang::First, clang::Decl::getCanonicalDecl(), clang::Decl::getDeclContext(), clang::Decl::getPreviousDecl(), clang::DeclContext::getRedeclContext(), and clang::Decl::isFromASTFile().
Referenced by isLookupResultNotInteresting().
Compute the number of modules within the given tree (including the given module).
Definition at line 2931 of file ASTWriter.cpp.
References getNumberOfModules(), and clang::Module::submodules().
Referenced by getNumberOfModules().
|
static |
Definition at line 160 of file ASTWriter.cpp.
Definition at line 7412 of file ASTWriter.cpp.
References D, clang::Decl::getASTContext(), clang::ASTContext::getVaListTagDecl(), and clang::Decl::isFromASTFile().
Definition at line 3357 of file ASTWriter.cpp.
References D, clang::Decl::getDeclContext(), clang::DeclContext::getRedeclContext(), clang::Internal, and clang::DeclContext::isFileContext().
|
static |
If the.
IdentifierID | ID is a local Identifier ID. If the higher bits of ID is 0, it implies that the ID doesn't come from AST files. |
Definition at line 3934 of file ASTWriter.cpp.
Referenced by clang::ASTWriter::SetIdentifierOffset().
|
static |
Returns ture if all of the lookup result are either external, not emitted or predefined.
In such cases, the lookup result is not interesting and we don't need to record the result in the current being written module. Return false otherwise.
Definition at line 4507 of file ASTWriter.cpp.
References D, getDeclForLocalLookup(), clang::ASTWriter::getDoneWritingDeclsAndTypes(), clang::ASTWriter::getLangOpts(), clang::ASTWriter::isDeclPredefined(), clang::Result, and clang::ASTWriter::wasDeclEmitted().
|
static |
Definition at line 6778 of file ASTWriter.cpp.
References clang::serialization::TypeIdx::asTypeID(), clang::ASTContext::AutoDeductTy, clang::ASTContext::AutoRRefDeductTy, clang::serialization::PREDEF_TYPE_AUTO_DEDUCT, clang::serialization::PREDEF_TYPE_AUTO_RREF_DEDUCT, clang::serialization::PREDEF_TYPE_NULL_ID, clang::T, and clang::serialization::TypeIdxFromBuiltin().
Referenced by clang::ASTWriter::GetOrCreateTypeID().
|
static |