LLVM 19.0.0git
Functions
TypeIndexDiscovery.cpp File Reference
#include "llvm/DebugInfo/CodeView/TypeIndexDiscovery.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/Endian.h"

Go to the source code of this file.

Functions

static MethodKind getMethodKind (uint16_t Attrs)
 
static bool isIntroVirtual (uint16_t Attrs)
 
static PointerMode getPointerMode (uint32_t Attrs)
 
static bool isMemberPointer (uint32_t Attrs)
 
static uint32_t getEncodedIntegerLength (ArrayRef< uint8_t > Data)
 
static 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)
 
static void resolveTypeIndexReferences (ArrayRef< uint8_t > RecordData, ArrayRef< TiReference > Refs, SmallVectorImpl< TypeIndex > &Indices)
 

Function Documentation

◆ discoverTypeIndices() [1/2]

static bool discoverTypeIndices ( ArrayRef< uint8_t >  Content,
SymbolKind  Kind,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ discoverTypeIndices() [2/2]

static void discoverTypeIndices ( ArrayRef< uint8_t >  Content,
TypeLeafKind  Kind,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ getCStringLength()

static uint32_t getCStringLength ( ArrayRef< uint8_t >  Data)
inlinestatic

◆ getEncodedIntegerLength()

static uint32_t getEncodedIntegerLength ( ArrayRef< uint8_t >  Data)
inlinestatic

◆ getMethodKind()

static MethodKind getMethodKind ( uint16_t  Attrs)
inlinestatic

Definition at line 17 of file TypeIndexDiscovery.cpp.

Referenced by isIntroVirtual().

◆ getPointerMode()

static PointerMode getPointerMode ( uint32_t  Attrs)
inlinestatic

◆ handleBaseClass()

static uint32_t handleBaseClass ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleDataMember()

static uint32_t handleDataMember ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleEnumerator()

static uint32_t handleEnumerator ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

Definition at line 105 of file TypeIndexDiscovery.cpp.

References getCStringLength(), getEncodedIntegerLength(), and Size.

Referenced by handleFieldList().

◆ handleFieldList()

static void handleFieldList ( ArrayRef< uint8_t >  Content,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleListContinuation()

static uint32_t handleListContinuation ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleMethodOverloadList()

static void handleMethodOverloadList ( ArrayRef< uint8_t >  Content,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleNestedType()

static uint32_t handleNestedType ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleOneMethod()

static uint32_t handleOneMethod ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleOverloadedMethod()

static uint32_t handleOverloadedMethod ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handlePointer()

static void handlePointer ( ArrayRef< uint8_t >  Content,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleStaticDataMember()

static uint32_t handleStaticDataMember ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleVFPtr()

static uint32_t handleVFPtr ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ handleVirtualBaseClass()

static uint32_t handleVirtualBaseClass ( ArrayRef< uint8_t >  Data,
uint32_t  Offset,
bool  IsIndirect,
SmallVectorImpl< TiReference > &  Refs 
)
static

◆ isIntroVirtual()

static bool isIntroVirtual ( uint16_t  Attrs)
inlinestatic

Definition at line 23 of file TypeIndexDiscovery.cpp.

References getMethodKind().

Referenced by handleMethodOverloadList(), and handleOneMethod().

◆ isMemberPointer()

static bool isMemberPointer ( uint32_t  Attrs)
inlinestatic

Definition at line 34 of file TypeIndexDiscovery.cpp.

References getPointerMode().

Referenced by handlePointer().

◆ resolveTypeIndexReferences()

static void resolveTypeIndexReferences ( ArrayRef< uint8_t >  RecordData,
ArrayRef< TiReference Refs,
SmallVectorImpl< TypeIndex > &  Indices 
)
static