clang 22.0.0git
APINotesFormat.h File Reference
#include "clang/APINotes/Types.h"
#include "llvm/ADT/PointerEmbeddedInt.h"
#include "llvm/Bitcode/BitcodeConvenience.h"

Go to the source code of this file.

Classes

struct  clang::api_notes::StoredObjCSelector
 A stored Objective-C selector. More...
struct  clang::api_notes::ContextTableKey
 A stored Objective-C or C++ context, represented by the ID of its parent context, the kind of this context (Objective-C class / C++ namespace / etc), and the ID of this context. More...
struct  clang::api_notes::SingleDeclTableKey
 A stored Objective-C or C++ declaration, represented by the ID of its parent context, and the name of the declaration. More...
struct  llvm::DenseMapInfo< clang::api_notes::StoredObjCSelector >
struct  llvm::DenseMapInfo< clang::api_notes::ContextTableKey >
struct  llvm::DenseMapInfo< clang::api_notes::SingleDeclTableKey >

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
namespace  clang::api_notes
namespace  clang::api_notes::control_block
namespace  clang::api_notes::identifier_block
namespace  clang::api_notes::context_block
namespace  clang::api_notes::objc_property_block
namespace  clang::api_notes::objc_method_block
namespace  clang::api_notes::cxx_method_block
namespace  clang::api_notes::field_block
namespace  clang::api_notes::objc_selector_block
namespace  clang::api_notes::global_variable_block
namespace  clang::api_notes::global_function_block
namespace  clang::api_notes::tag_block
namespace  clang::api_notes::typedef_block
namespace  clang::api_notes::enum_constant_block
namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.

Typedefs

using clang::api_notes::IdentifierID = llvm::PointerEmbeddedInt<unsigned, 31>
using clang::api_notes::IdentifierIDField = llvm::BCVBR<16>
using clang::api_notes::SelectorID = llvm::PointerEmbeddedInt<unsigned, 31>
using clang::api_notes::SelectorIDField = llvm::BCVBR<16>
using clang::api_notes::control_block::MetadataLayout
using clang::api_notes::control_block::ModuleNameLayout
using clang::api_notes::control_block::ModuleOptionsLayout
using clang::api_notes::control_block::SourceFileLayout
using clang::api_notes::identifier_block::IdentifierDataLayout
using clang::api_notes::context_block::ContextIDLayout
using clang::api_notes::context_block::ContextInfoLayout
using clang::api_notes::objc_property_block::ObjCPropertyDataLayout
using clang::api_notes::objc_method_block::ObjCMethodDataLayout
using clang::api_notes::cxx_method_block::CXXMethodDataLayout
using clang::api_notes::field_block::FieldDataLayout
using clang::api_notes::objc_selector_block::ObjCSelectorDataLayout
using clang::api_notes::global_variable_block::GlobalVariableDataLayout
using clang::api_notes::global_function_block::GlobalFunctionDataLayout
using clang::api_notes::tag_block::TagDataLayout
using clang::api_notes::typedef_block::TypedefDataLayout
using clang::api_notes::enum_constant_block::EnumConstantDataLayout

Enumerations

enum  clang::api_notes::BlockID {
  clang::api_notes::CONTROL_BLOCK_ID = llvm::bitc::FIRST_APPLICATION_BLOCKID , clang::api_notes::IDENTIFIER_BLOCK_ID , clang::api_notes::OBJC_CONTEXT_BLOCK_ID , clang::api_notes::OBJC_PROPERTY_BLOCK_ID ,
  clang::api_notes::OBJC_METHOD_BLOCK_ID , clang::api_notes::CXX_METHOD_BLOCK_ID , clang::api_notes::OBJC_SELECTOR_BLOCK_ID , clang::api_notes::FIELD_BLOCK_ID ,
  clang::api_notes::GLOBAL_VARIABLE_BLOCK_ID , clang::api_notes::GLOBAL_FUNCTION_BLOCK_ID , clang::api_notes::TAG_BLOCK_ID , clang::api_notes::TYPEDEF_BLOCK_ID ,
  clang::api_notes::ENUM_CONSTANT_BLOCK_ID
}
 The various types of blocks that can occur within a API notes file. More...
enum  { clang::api_notes::control_block::METADATA = 1 , clang::api_notes::control_block::MODULE_NAME = 2 , clang::api_notes::control_block::MODULE_OPTIONS = 3 , clang::api_notes::control_block::SOURCE_FILE = 4 }
enum  { clang::api_notes::identifier_block::IDENTIFIER_DATA = 1 }
enum  { clang::api_notes::context_block::CONTEXT_ID_DATA = 1 , clang::api_notes::context_block::CONTEXT_INFO_DATA = 2 }
enum  { clang::api_notes::objc_property_block::OBJC_PROPERTY_DATA = 1 }
enum  { clang::api_notes::objc_method_block::OBJC_METHOD_DATA = 1 }
enum  { clang::api_notes::cxx_method_block::CXX_METHOD_DATA = 1 }
enum  { clang::api_notes::field_block::FIELD_DATA = 1 }
enum  { clang::api_notes::objc_selector_block::OBJC_SELECTOR_DATA = 1 }
enum  { clang::api_notes::global_variable_block::GLOBAL_VARIABLE_DATA = 1 }
enum  { clang::api_notes::global_function_block::GLOBAL_FUNCTION_DATA = 1 }
enum  { clang::api_notes::tag_block::TAG_DATA = 1 }
enum  { clang::api_notes::typedef_block::TYPEDEF_DATA = 1 }
enum  { clang::api_notes::enum_constant_block::ENUM_CONSTANT_DATA = 1 }

Functions

bool clang::api_notes::operator== (const ContextTableKey &lhs, const ContextTableKey &rhs)
bool clang::api_notes::operator== (const SingleDeclTableKey &lhs, const SingleDeclTableKey &rhs)

Variables

const unsigned char clang::api_notes::API_NOTES_SIGNATURE [] = {0xE2, 0x9C, 0xA8, 0x01}
 Magic number for API notes files.
const uint16_t clang::api_notes::VERSION_MAJOR = 0
 API notes file major version number.
const uint16_t clang::api_notes::VERSION_MINOR = 38
 API notes file minor version number.
const uint8_t clang::api_notes::kSwiftConforms = 1
const uint8_t clang::api_notes::kSwiftDoesNotConform = 2