enum ASTRecordTypes

Description

Record types that occur within the AST block itself.

Declared at: clang/include/clang/Serialization/ASTBitCodes.h:430

Enumerators

NameValueComment
TYPE_OFFSET1Record code for the offsets of each type.The TYPE_OFFSET constant describes the record that occurs within the AST block. The record itself is an array of offsets that point into the declarations and types block (identified by DECLTYPES_BLOCK_ID). The index into the array is based on the ID of a type. For a given type ID @c T, the lower three bits of@c T are its qualifiers (const, volatile, restrict), as in the QualType class. The upper bits, after being shifted and subtracting NUM_PREDEF_TYPE_IDS, are used to index into the TYPE_OFFSET block to determine the offset of that type's corresponding record within the DECLTYPES_BLOCK_ID block.
DECL_OFFSET2Record code for the offsets of each decl.The DECL_OFFSET constant describes the record that occurs within the block identified by DECL_OFFSETS_BLOCK_ID within the AST block. The record itself is an array of offsets that point into the declarations and types block (identified by DECLTYPES_BLOCK_ID). The declaration ID is an index into this record, after subtracting one to account for the use of declaration ID 0 for a NULL declaration pointer. Index 0 is reserved for the translation unit declaration.
IDENTIFIER_OFFSET3Record code for the table of offsets of each identifier ID.The offset table contains offsets into the blob stored in the IDENTIFIER_TABLE record. Each offset points to the NULL-terminated string that corresponds to that identifier.
METADATA_OLD_FORMAT4This is so that older clang versions, before the introduction of the control block, can read and reject the newer PCH format. *DON'T CHANGE THIS NUMBER*.
IDENTIFIER_TABLE5Record code for the identifier table.The identifier table is a simple blob that contains NULL-terminated strings for all of the identifiers referenced by the AST file. The IDENTIFIER_OFFSET table contains the mapping from identifier IDs to the characters in this blob. Note that the starting offsets of all of the identifiers are odd, so that, when the identifier offset table is loaded in, we can use the low bit to distinguish between offsets (for unresolved identifier IDs) and IdentifierInfo pointers (for already-resolved identifier IDs).
EAGERLY_DESERIALIZED_DECLS6Record code for the array of eagerly deserialized decls.The AST file contains a list of all of the declarations that should be eagerly deserialized present within the parsed headers, stored as an array of declaration IDs. These declarations will be reported to the AST consumer after the AST file has been read, since their presence can affect the semantics of the program (e.g., for code generation).
SPECIAL_TYPES7Record code for the set of non-builtin, special types.This record contains the type IDs for the various type nodes that are constructed during semantic analysis (e.g., __builtin_va_list). The SPECIAL_TYPE_* constants provide offsets into this record.
STATISTICS8Record code for the extra statistics we gather while generating an AST file.
TENTATIVE_DEFINITIONS9Record code for the array of tentative definitions.
SELECTOR_OFFSETS11Record code for the table of offsets into the Objective-C method pool.
METHOD_POOL12Record code for the Objective-C method pool,
PP_COUNTER_VALUE13The value of the next __COUNTER__ to dispense. [PP_COUNTER_VALUE, Val]
SOURCE_LOCATION_OFFSETS14Record code for the table of offsets into the block of source-location information.
SOURCE_LOCATION_PRELOADS15Record code for the set of source location entries that need to be preloaded by the AST reader.This set contains the source location entry for the predefines buffer and for any file entries that need to be preloaded.
EXT_VECTOR_DECLS16Record code for the set of ext_vector type names.
UNUSED_FILESCOPED_DECLS17Record code for the array of unused file scoped decls.
PPD_ENTITIES_OFFSETS18Record code for the table of offsets to entries in the preprocessing record.
VTABLE_USES19Record code for the array of VTable uses.
REFERENCED_SELECTOR_POOL21Record code for referenced selector pool.
TU_UPDATE_LEXICAL22Record code for an update to the TU's lexically contained declarations.
SEMA_DECL_REFS24Record code for declarations that Sema keeps references of.
WEAK_UNDECLARED_IDENTIFIERS25Record code for weak undeclared identifiers.
PENDING_IMPLICIT_INSTANTIATIONS26Record code for pending implicit instantiations.
UPDATE_VISIBLE28Record code for an update to a decl context's lookup table.In practice, this should only be used for the TU and namespaces.
DECL_UPDATE_OFFSETS29Record for offsets of DECL_UPDATES records for declarations that were modified after being deserialized and need updates.
CUDA_SPECIAL_DECL_REFS33Record code for special CUDA declarations.
HEADER_SEARCH_TABLE34Record code for header search information.
FP_PRAGMA_OPTIONS35Record code for floating point # pragma options.
OPENCL_EXTENSIONS36Record code for enabled OpenCL extensions.
DELEGATING_CTORS37The list of delegating constructor declarations.
KNOWN_NAMESPACES38Record code for the set of known namespaces, which are used for typo correction.
MODULE_OFFSET_MAP39Record code for the remapping information used to relate loaded modules to the various offsets and IDs(e.g., source location offests, declaration and type IDs) that are used in that module to refer to other modules.
SOURCE_MANAGER_LINE_TABLE40Record code for the source manager line table information, which stores information about # line directives.
OBJC_CATEGORIES_MAP41Record code for map of Objective-C class definition IDs to the ObjC categories in a module that are attached to that class.
FILE_SORTED_DECLS42Record code for a file sorted array of DeclIDs in a module.
IMPORTED_MODULES43Record code for an array of all of the (sub)modules that were imported by the AST file.
OBJC_CATEGORIES46Record code for the array of Objective-C categories (including extensions).This array can only be interpreted properly using the Objective-C categories map.
MACRO_OFFSET47Record code for the table of offsets of each macro ID.The offset table contains offsets into the blob stored in the preprocessor block. Each offset points to the corresponding macro definition.
INTERESTING_IDENTIFIERS48A list of "interesting" identifiers. Only used in C++ (where we don't normally do lookups into the serialized identifier table). These are eagerly deserialized.
UNDEFINED_BUT_USED49Record code for undefined but used functions and variables that need a definition in this TU.
LATE_PARSED_TEMPLATE50Record code for late parsed template functions.
OPTIMIZE_PRAGMA_OPTIONS51Record code for # pragma optimize options.
UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES52Record code for potentially unused local typedef names.
DELETE_EXPRS_TO_ANALYZE54Delete expressions that will be analyzed later.
MSSTRUCT_PRAGMA_OPTIONS55Record code for # pragma ms_struct options.
POINTERS_TO_MEMBERS_PRAGMA_OPTIONS56Record code for # pragma ms_struct options.
CUDA_PRAGMA_FORCE_HOST_DEVICE_DEPTH57Number of unmatched #pragma clang cuda_force_host_device begin directives we've seen.
OPENCL_EXTENSION_TYPES58Record code for types associated with OpenCL extensions.
OPENCL_EXTENSION_DECLS59Record code for declarations associated with OpenCL extensions.
MODULAR_CODEGEN_DECLS60Record code for declarations associated with OpenCL extensions.
ALIGN_PACK_PRAGMA_OPTIONS61Record code for # pragma align/pack options.
PP_CONDITIONAL_STACK62The stack of open #ifs/#ifdefs recorded in a preamble.
PPD_SKIPPED_RANGES63A table of skipped ranges within the preprocessing record.
DECLS_TO_CHECK_FOR_DEFERRED_DIAGS64Record code for the Decls to be checked for deferred diags.
FLOAT_CONTROL_PRAGMA_OPTIONS65Record code for # pragma float_control options.
PP_INCLUDED_FILES66Record code for included files.
PP_ASSUME_NONNULL_LOC67Record code for an unterminated # pragma clang assume_nonnull begin recorded in a preamble.