Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
llvm::codeview::TypeIndex Class Reference

A 32-bit type reference. More...

#include "llvm/DebugInfo/CodeView/TypeIndex.h"

Public Member Functions

 TypeIndex ()
 TypeIndex (uint32_t Index)
 TypeIndex (SimpleTypeKind Kind)
 TypeIndex (SimpleTypeKind Kind, SimpleTypeMode Mode)
uint32_t getIndex () const
void setIndex (uint32_t I)
bool isSimple () const
bool isDecoratedItemId () const
bool isNoneType () const
uint32_t toArrayIndex () const
TypeIndex removeDecoration ()
SimpleTypeKind getSimpleKind () const
SimpleTypeMode getSimpleMode () const
TypeIndex makeDirect () const
TypeIndexoperator+= (unsigned N)
TypeIndexoperator++ ()
TypeIndex operator++ (int)
TypeIndexoperator-= (unsigned N)
TypeIndexoperator-- ()
TypeIndex operator-- (int)

Static Public Member Functions

static TypeIndex fromArrayIndex (uint32_t Index)
static TypeIndex fromDecoratedArrayIndex (bool IsItem, uint32_t Index)
static TypeIndex None ()
static TypeIndex Void ()
static TypeIndex VoidPointer32 ()
static TypeIndex VoidPointer64 ()
static TypeIndex NullptrT ()
static TypeIndex SignedCharacter ()
static TypeIndex UnsignedCharacter ()
static TypeIndex NarrowCharacter ()
static TypeIndex WideCharacter ()
static TypeIndex Int16Short ()
static TypeIndex UInt16Short ()
static TypeIndex Int32 ()
static TypeIndex UInt32 ()
static TypeIndex Int32Long ()
static TypeIndex UInt32Long ()
static TypeIndex Int64 ()
static TypeIndex UInt64 ()
static TypeIndex Int64Quad ()
static TypeIndex UInt64Quad ()
static TypeIndex Float32 ()
static TypeIndex Float64 ()
static LLVM_ABI StringRef simpleTypeName (TypeIndex TI)

Static Public Attributes

static const uint32_t FirstNonSimpleIndex = 0x1000
static const uint32_t SimpleKindMask = 0x000000ff
static const uint32_t SimpleModeMask = 0x00000700
static const uint32_t DecoratedItemIdMask = 0x80000000

Friends

bool operator== (const TypeIndex &A, const TypeIndex &B)
bool operator!= (const TypeIndex &A, const TypeIndex &B)
bool operator< (const TypeIndex &A, const TypeIndex &B)
bool operator<= (const TypeIndex &A, const TypeIndex &B)
bool operator> (const TypeIndex &A, const TypeIndex &B)
bool operator>= (const TypeIndex &A, const TypeIndex &B)
TypeIndex operator+ (const TypeIndex &A, uint32_t N)
TypeIndex operator- (const TypeIndex &A, uint32_t N)
uint32_t operator- (const TypeIndex &A, const TypeIndex &B)

Detailed Description

A 32-bit type reference.

Types are indexed by their order of appearance in .debug$T plus 0x1000. Type indices less than 0x1000 are "simple" types, composed of a SimpleTypeMode byte followed by a SimpleTypeKind byte.

Definition at line 97 of file TypeIndex.h.

Constructor & Destructor Documentation

◆ TypeIndex() [1/4]

◆ TypeIndex() [2/4]

llvm::codeview::TypeIndex::TypeIndex ( uint32_t Index)
inlineexplicit

Definition at line 106 of file TypeIndex.h.

◆ TypeIndex() [3/4]

llvm::codeview::TypeIndex::TypeIndex ( SimpleTypeKind Kind)
inlineexplicit

Definition at line 107 of file TypeIndex.h.

◆ TypeIndex() [4/4]

llvm::codeview::TypeIndex::TypeIndex ( SimpleTypeKind Kind,
SimpleTypeMode Mode )
inline

Definition at line 109 of file TypeIndex.h.

References Mode.

Member Function Documentation

◆ Float32()

TypeIndex llvm::codeview::TypeIndex::Float32 ( )
inlinestatic

Definition at line 196 of file TypeIndex.h.

References llvm::codeview::Float32, and TypeIndex().

◆ Float64()

TypeIndex llvm::codeview::TypeIndex::Float64 ( )
inlinestatic

Definition at line 197 of file TypeIndex.h.

References llvm::codeview::Float64, and TypeIndex().

◆ fromArrayIndex()

◆ fromDecoratedArrayIndex()

TypeIndex llvm::codeview::TypeIndex::fromDecoratedArrayIndex ( bool IsItem,
uint32_t Index )
inlinestatic

Definition at line 128 of file TypeIndex.h.

References DecoratedItemIdMask, FirstNonSimpleIndex, and TypeIndex().

◆ getIndex()

◆ getSimpleKind()

SimpleTypeKind llvm::codeview::TypeIndex::getSimpleKind ( ) const
inline

◆ getSimpleMode()

SimpleTypeMode llvm::codeview::TypeIndex::getSimpleMode ( ) const
inline

Definition at line 142 of file TypeIndex.h.

References assert(), isSimple(), and SimpleModeMask.

Referenced by llvm::codeview::getSizeInBytesForTypeIndex(), and simpleTypeName().

◆ Int16Short()

TypeIndex llvm::codeview::TypeIndex::Int16Short ( )
inlinestatic

Definition at line 177 of file TypeIndex.h.

References llvm::codeview::Int16Short, and TypeIndex().

◆ Int32()

TypeIndex llvm::codeview::TypeIndex::Int32 ( )
inlinestatic

Definition at line 183 of file TypeIndex.h.

References llvm::codeview::Int32, and TypeIndex().

◆ Int32Long()

TypeIndex llvm::codeview::TypeIndex::Int32Long ( )
inlinestatic

Definition at line 185 of file TypeIndex.h.

References llvm::codeview::Int32Long, and TypeIndex().

◆ Int64()

TypeIndex llvm::codeview::TypeIndex::Int64 ( )
inlinestatic

Definition at line 189 of file TypeIndex.h.

References llvm::codeview::Int64, and TypeIndex().

◆ Int64Quad()

TypeIndex llvm::codeview::TypeIndex::Int64Quad ( )
inlinestatic

Definition at line 191 of file TypeIndex.h.

References llvm::codeview::Int64Quad, and TypeIndex().

◆ isDecoratedItemId()

bool llvm::codeview::TypeIndex::isDecoratedItemId ( ) const
inline

Definition at line 115 of file TypeIndex.h.

References DecoratedItemIdMask.

◆ isNoneType()

◆ isSimple()

◆ makeDirect()

TypeIndex llvm::codeview::TypeIndex::makeDirect ( ) const
inline

Definition at line 147 of file TypeIndex.h.

References getSimpleKind(), and TypeIndex().

◆ NarrowCharacter()

TypeIndex llvm::codeview::TypeIndex::NarrowCharacter ( )
inlinestatic

Definition at line 171 of file TypeIndex.h.

References llvm::codeview::NarrowCharacter, and TypeIndex().

◆ None()

TypeIndex llvm::codeview::TypeIndex::None ( )
inlinestatic

Definition at line 149 of file TypeIndex.h.

References llvm::codeview::None, and TypeIndex().

Referenced by isNoneType(), and TypeIndex().

◆ NullptrT()

TypeIndex llvm::codeview::TypeIndex::NullptrT ( )
inlinestatic

Definition at line 158 of file TypeIndex.h.

References llvm::codeview::NearPointer, TypeIndex(), and llvm::codeview::Void.

Referenced by simpleTypeName().

◆ operator++() [1/2]

TypeIndex & llvm::codeview::TypeIndex::operator++ ( )
inline

Definition at line 204 of file TypeIndex.h.

References TypeIndex().

Referenced by operator++().

◆ operator++() [2/2]

TypeIndex llvm::codeview::TypeIndex::operator++ ( int )
inline

Definition at line 209 of file TypeIndex.h.

References llvm::codeview::Copy, operator++(), and TypeIndex().

◆ operator+=()

TypeIndex & llvm::codeview::TypeIndex::operator+= ( unsigned N)
inline

Definition at line 199 of file TypeIndex.h.

References N, and TypeIndex().

◆ operator--() [1/2]

TypeIndex & llvm::codeview::TypeIndex::operator-- ( )
inline

Definition at line 221 of file TypeIndex.h.

References TypeIndex().

Referenced by operator--().

◆ operator--() [2/2]

TypeIndex llvm::codeview::TypeIndex::operator-- ( int )
inline

Definition at line 226 of file TypeIndex.h.

References llvm::codeview::Copy, operator--(), and TypeIndex().

◆ operator-=()

TypeIndex & llvm::codeview::TypeIndex::operator-= ( unsigned N)
inline

Definition at line 215 of file TypeIndex.h.

References assert(), N, and TypeIndex().

◆ removeDecoration()

TypeIndex llvm::codeview::TypeIndex::removeDecoration ( )
inline

Definition at line 133 of file TypeIndex.h.

References DecoratedItemIdMask, and TypeIndex().

◆ setIndex()

void llvm::codeview::TypeIndex::setIndex ( uint32_t I)
inline

Definition at line 113 of file TypeIndex.h.

References I.

Referenced by llvm::logicalview::getTrueType(), and llvm::codeview::CodeViewRecordIO::mapInteger().

◆ SignedCharacter()

TypeIndex llvm::codeview::TypeIndex::SignedCharacter ( )
inlinestatic

Definition at line 165 of file TypeIndex.h.

References llvm::codeview::SignedCharacter, and TypeIndex().

◆ simpleTypeName()

◆ toArrayIndex()

◆ UInt16Short()

TypeIndex llvm::codeview::TypeIndex::UInt16Short ( )
inlinestatic

Definition at line 180 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::UInt16Short.

◆ UInt32()

TypeIndex llvm::codeview::TypeIndex::UInt32 ( )
inlinestatic

Definition at line 184 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::UInt32.

◆ UInt32Long()

TypeIndex llvm::codeview::TypeIndex::UInt32Long ( )
inlinestatic

Definition at line 186 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::UInt32Long.

◆ UInt64()

TypeIndex llvm::codeview::TypeIndex::UInt64 ( )
inlinestatic

Definition at line 190 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::UInt64.

◆ UInt64Quad()

TypeIndex llvm::codeview::TypeIndex::UInt64Quad ( )
inlinestatic

Definition at line 192 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::UInt64Quad.

◆ UnsignedCharacter()

TypeIndex llvm::codeview::TypeIndex::UnsignedCharacter ( )
inlinestatic

Definition at line 168 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::UnsignedCharacter.

◆ Void()

TypeIndex llvm::codeview::TypeIndex::Void ( )
inlinestatic

Definition at line 150 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::Void.

◆ VoidPointer32()

TypeIndex llvm::codeview::TypeIndex::VoidPointer32 ( )
inlinestatic

Definition at line 151 of file TypeIndex.h.

References llvm::codeview::NearPointer32, TypeIndex(), and llvm::codeview::Void.

◆ VoidPointer64()

TypeIndex llvm::codeview::TypeIndex::VoidPointer64 ( )
inlinestatic

Definition at line 154 of file TypeIndex.h.

References llvm::codeview::NearPointer64, TypeIndex(), and llvm::codeview::Void.

◆ WideCharacter()

TypeIndex llvm::codeview::TypeIndex::WideCharacter ( )
inlinestatic

Definition at line 174 of file TypeIndex.h.

References TypeIndex(), and llvm::codeview::WideCharacter.

◆ operator!=

bool operator!= ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 236 of file TypeIndex.h.

References A(), B(), and TypeIndex().

◆ operator+

TypeIndex operator+ ( const TypeIndex & A,
uint32_t N )
friend

Definition at line 256 of file TypeIndex.h.

References A(), N, and TypeIndex().

◆ operator- [1/2]

uint32_t operator- ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 269 of file TypeIndex.h.

References A(), assert(), B(), and TypeIndex().

◆ operator- [2/2]

TypeIndex operator- ( const TypeIndex & A,
uint32_t N )
friend

Definition at line 262 of file TypeIndex.h.

References A(), assert(), N, and TypeIndex().

◆ operator<

bool operator< ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 240 of file TypeIndex.h.

References A(), B(), and TypeIndex().

◆ operator<=

bool operator<= ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 244 of file TypeIndex.h.

References A(), B(), and TypeIndex().

◆ operator==

bool operator== ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 232 of file TypeIndex.h.

References A(), B(), and TypeIndex().

◆ operator>

bool operator> ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 248 of file TypeIndex.h.

References A(), B(), and TypeIndex().

◆ operator>=

bool operator>= ( const TypeIndex & A,
const TypeIndex & B )
friend

Definition at line 252 of file TypeIndex.h.

References A(), B(), and TypeIndex().

Member Data Documentation

◆ DecoratedItemIdMask

const uint32_t llvm::codeview::TypeIndex::DecoratedItemIdMask = 0x80000000
static

◆ FirstNonSimpleIndex

◆ SimpleKindMask

const uint32_t llvm::codeview::TypeIndex::SimpleKindMask = 0x000000ff
static

Definition at line 100 of file TypeIndex.h.

Referenced by getSimpleKind().

◆ SimpleModeMask

const uint32_t llvm::codeview::TypeIndex::SimpleModeMask = 0x00000700
static

Definition at line 101 of file TypeIndex.h.

Referenced by getSimpleMode().


The documentation for this class was generated from the following files: