#ifndef LLVM_CLANG_LIB_APINOTES_APINOTESFORMAT_H
#define LLVM_CLANG_LIB_APINOTES_APINOTESFORMAT_H
#include "clang/APINotes/Types.h"
#include "llvm/ADT/PointerEmbeddedInt.h"
#include "llvm/Bitcode/BitcodeConvenience.h"
namespace clang {
namespace api_notes {
const unsigned char API_NOTES_SIGNATURE[] = …;
const uint16_t VERSION_MAJOR = …;
const uint16_t VERSION_MINOR = …;
const uint8_t kSwiftCopyable = …;
const uint8_t kSwiftNonCopyable = …;
IdentifierID;
IdentifierIDField;
SelectorID;
SelectorIDField;
enum BlockID { … };
namespace control_block {
enum { … };
MetadataLayout;
ModuleNameLayout;
ModuleOptionsLayout;
SourceFileLayout;
}
namespace identifier_block {
enum { … };
IdentifierDataLayout;
}
namespace context_block {
enum { … };
ContextIDLayout;
ContextInfoLayout;
}
namespace objc_property_block {
enum { … };
ObjCPropertyDataLayout;
}
namespace objc_method_block {
enum { … };
ObjCMethodDataLayout;
}
namespace cxx_method_block {
enum { … };
CXXMethodDataLayout;
}
namespace field_block {
enum { … };
FieldDataLayout;
}
namespace objc_selector_block {
enum { … };
ObjCSelectorDataLayout;
}
namespace global_variable_block {
enum { … };
GlobalVariableDataLayout;
}
namespace global_function_block {
enum { … };
GlobalFunctionDataLayout;
}
namespace tag_block {
enum { … };
TagDataLayout;
}
namespace typedef_block {
enum { … };
TypedefDataLayout;
}
namespace enum_constant_block {
enum { … };
EnumConstantDataLayout;
}
struct StoredObjCSelector { … };
struct ContextTableKey { … };
inline bool operator==(const ContextTableKey &lhs, const ContextTableKey &rhs) { … }
struct SingleDeclTableKey { … };
inline bool operator==(const SingleDeclTableKey &lhs,
const SingleDeclTableKey &rhs) { … }
}
}
namespace llvm {
template <> struct DenseMapInfo<clang::api_notes::StoredObjCSelector> { … };
template <> struct DenseMapInfo<clang::api_notes::ContextTableKey> { … };
template <> struct DenseMapInfo<clang::api_notes::SingleDeclTableKey> { … };
}
#endif