#include "llvm/DebugInfo/CodeView/TypeIndexDiscovery.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/Endian.h"
usingnamespacellvm;
usingnamespacellvm::codeview;
static inline MethodKind getMethodKind(uint16_t Attrs) { … }
static inline bool isIntroVirtual(uint16_t Attrs) { … }
static inline PointerMode getPointerMode(uint32_t Attrs) { … }
static inline bool isMemberPointer(uint32_t Attrs) { … }
static inline uint32_t getEncodedIntegerLength(ArrayRef<uint8_t> Data) { … }
static inline uint32_t getCStringLength(ArrayRef<uint8_t> Data) { … }
static void handleMethodOverloadList(ArrayRef<uint8_t> Content,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleBaseClass(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleEnumerator(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleDataMember(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleOverloadedMethod(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleOneMethod(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleNestedType(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleStaticDataMember(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleVirtualBaseClass(ArrayRef<uint8_t> Data, uint32_t Offset,
bool IsIndirect,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleVFPtr(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static uint32_t handleListContinuation(ArrayRef<uint8_t> Data, uint32_t Offset,
SmallVectorImpl<TiReference> &Refs) { … }
static void handleFieldList(ArrayRef<uint8_t> Content,
SmallVectorImpl<TiReference> &Refs) { … }
static void handlePointer(ArrayRef<uint8_t> Content,
SmallVectorImpl<TiReference> &Refs) { … }
static void discoverTypeIndices(ArrayRef<uint8_t> Content, TypeLeafKind Kind,
SmallVectorImpl<TiReference> &Refs) { … }
static bool discoverTypeIndices(ArrayRef<uint8_t> Content, SymbolKind Kind,
SmallVectorImpl<TiReference> &Refs) { … }
void llvm::codeview::discoverTypeIndices(const CVType &Type,
SmallVectorImpl<TiReference> &Refs) { … }
static void resolveTypeIndexReferences(ArrayRef<uint8_t> RecordData,
ArrayRef<TiReference> Refs,
SmallVectorImpl<TypeIndex> &Indices) { … }
void llvm::codeview::discoverTypeIndices(const CVType &Type,
SmallVectorImpl<TypeIndex> &Indices) { … }
void llvm::codeview::discoverTypeIndices(ArrayRef<uint8_t> RecordData,
SmallVectorImpl<TypeIndex> &Indices) { … }
void llvm::codeview::discoverTypeIndices(ArrayRef<uint8_t> RecordData,
SmallVectorImpl<TiReference> &Refs) { … }
bool llvm::codeview::discoverTypeIndicesInSymbol(
const CVSymbol &Sym, SmallVectorImpl<TiReference> &Refs) { … }
bool llvm::codeview::discoverTypeIndicesInSymbol(
ArrayRef<uint8_t> RecordData, SmallVectorImpl<TiReference> &Refs) { … }
bool llvm::codeview::discoverTypeIndicesInSymbol(
ArrayRef<uint8_t> RecordData, SmallVectorImpl<TypeIndex> &Indices) { … }