LLVM  4.0.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
llvm::codeview::TypeIndex Class Reference

A 32-bit type reference. More...

#include <TypeIndex.h>

Collaboration diagram for llvm::codeview::TypeIndex:
[legend]

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 isNoneType () const
 
SimpleTypeKind getSimpleKind () const
 
SimpleTypeMode getSimpleMode () const
 

Static Public Member Functions

static TypeIndex None ()
 
static TypeIndex Void ()
 
static TypeIndex VoidPointer32 ()
 
static TypeIndex VoidPointer64 ()
 
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 Public Attributes

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

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)
 

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 89 of file TypeIndex.h.

Constructor & Destructor Documentation

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

Definition at line 97 of file TypeIndex.h.

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

Definition at line 98 of file TypeIndex.h.

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

Definition at line 100 of file TypeIndex.h.

Member Function Documentation

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

Definition at line 159 of file TypeIndex.h.

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

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

Definition at line 160 of file TypeIndex.h.

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

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

Definition at line 109 of file TypeIndex.h.

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

Referenced by llvm::codeview::TypeDatabase::getTypeName().

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

Definition at line 114 of file TypeIndex.h.

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

Referenced by llvm::codeview::TypeDatabase::getTypeName().

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

Definition at line 140 of file TypeIndex.h.

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

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

Definition at line 146 of file TypeIndex.h.

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

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

Definition at line 148 of file TypeIndex.h.

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

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

Definition at line 152 of file TypeIndex.h.

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

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

Definition at line 154 of file TypeIndex.h.

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

bool llvm::codeview::TypeIndex::isNoneType ( ) const
inline
bool llvm::codeview::TypeIndex::isSimple ( ) const
inline
static TypeIndex llvm::codeview::TypeIndex::NarrowCharacter ( )
inlinestatic

Definition at line 134 of file TypeIndex.h.

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

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

Definition at line 119 of file TypeIndex.h.

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

Referenced by isNoneType().

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

Definition at line 104 of file TypeIndex.h.

References I.

Referenced by llvm::codeview::CodeViewRecordIO::mapInteger().

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

Definition at line 128 of file TypeIndex.h.

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

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

Definition at line 143 of file TypeIndex.h.

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

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

Definition at line 147 of file TypeIndex.h.

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

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

Definition at line 149 of file TypeIndex.h.

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

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

Definition at line 153 of file TypeIndex.h.

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

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

Definition at line 155 of file TypeIndex.h.

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

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

Definition at line 131 of file TypeIndex.h.

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

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

Definition at line 120 of file TypeIndex.h.

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

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

Definition at line 121 of file TypeIndex.h.

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

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

Definition at line 124 of file TypeIndex.h.

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

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

Definition at line 137 of file TypeIndex.h.

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

Friends And Related Function Documentation

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

Definition at line 166 of file TypeIndex.h.

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

Definition at line 170 of file TypeIndex.h.

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

Definition at line 174 of file TypeIndex.h.

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

Definition at line 162 of file TypeIndex.h.

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

Definition at line 178 of file TypeIndex.h.

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

Definition at line 182 of file TypeIndex.h.

Member Data Documentation

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

Definition at line 92 of file TypeIndex.h.

Referenced by getSimpleKind().

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

Definition at line 93 of file TypeIndex.h.

Referenced by getSimpleMode().


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