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

#include <TypeRecord.h>

Inheritance diagram for llvm::codeview::PointerRecord:
[legend]
Collaboration diagram for llvm::codeview::PointerRecord:
[legend]

Public Member Functions

 PointerRecord (TypeRecordKind Kind)
 
 PointerRecord (TypeIndex ReferentType, uint32_t Attrs)
 
 PointerRecord (TypeIndex ReferentType, PointerKind PK, PointerMode PM, PointerOptions PO, uint8_t Size)
 
 PointerRecord (TypeIndex ReferentType, PointerKind PK, PointerMode PM, PointerOptions PO, uint8_t Size, const MemberPointerInfo &Member)
 
 PointerRecord (TypeIndex ReferentType, uint32_t Attrs, const MemberPointerInfo &Member)
 
bool remapTypeIndices (ArrayRef< TypeIndex > IndexMap)
 Rewrite member type indices with IndexMap. More...
 
TypeIndex getReferentType () const
 
PointerKind getPointerKind () const
 
PointerMode getMode () const
 
PointerOptions getOptions () const
 
uint8_t getSize () const
 
MemberPointerInfo getMemberInfo () const
 
bool isPointerToMember () const
 
bool isFlat () const
 
bool isConst () const
 
bool isVolatile () const
 
bool isUnaligned () const
 
- Public Member Functions inherited from llvm::codeview::TypeRecord
TypeRecordKind getKind () const
 

Public Attributes

TypeIndex ReferentType
 
uint32_t Attrs
 
Optional< MemberPointerInfoMemberInfo
 

Static Public Attributes

static const uint32_t PointerKindShift = 0
 
static const uint32_t PointerKindMask = 0x1F
 
static const uint32_t PointerModeShift = 5
 
static const uint32_t PointerModeMask = 0x07
 
static const uint32_t PointerOptionMask = 0xFF
 
static const uint32_t PointerSizeShift = 13
 
static const uint32_t PointerSizeMask = 0xFF
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::codeview::TypeRecord
 TypeRecord ()=default
 
 TypeRecord (TypeRecordKind Kind)
 

Detailed Description

Definition at line 258 of file TypeRecord.h.

Constructor & Destructor Documentation

llvm::codeview::PointerRecord::PointerRecord ( TypeRecordKind  Kind)
inlineexplicit

Definition at line 271 of file TypeRecord.h.

llvm::codeview::PointerRecord::PointerRecord ( TypeIndex  ReferentType,
uint32_t  Attrs 
)
inline

Definition at line 273 of file TypeRecord.h.

llvm::codeview::PointerRecord::PointerRecord ( TypeIndex  ReferentType,
PointerKind  PK,
PointerMode  PM,
PointerOptions  PO,
uint8_t  Size 
)
inline

Definition at line 277 of file TypeRecord.h.

llvm::codeview::PointerRecord::PointerRecord ( TypeIndex  ReferentType,
PointerKind  PK,
PointerMode  PM,
PointerOptions  PO,
uint8_t  Size,
const MemberPointerInfo Member 
)
inline

Definition at line 282 of file TypeRecord.h.

llvm::codeview::PointerRecord::PointerRecord ( TypeIndex  ReferentType,
uint32_t  Attrs,
const MemberPointerInfo Member 
)
inline

Definition at line 288 of file TypeRecord.h.

Member Function Documentation

MemberPointerInfo llvm::codeview::PointerRecord::getMemberInfo ( ) const
inline

Definition at line 317 of file TypeRecord.h.

References MemberInfo.

PointerMode llvm::codeview::PointerRecord::getMode ( ) const
inline

Definition at line 304 of file TypeRecord.h.

References Attrs, PointerModeMask, and PointerModeShift.

Referenced by isPointerToMember().

PointerOptions llvm::codeview::PointerRecord::getOptions ( ) const
inline

Definition at line 309 of file TypeRecord.h.

References Attrs.

PointerKind llvm::codeview::PointerRecord::getPointerKind ( ) const
inline

Definition at line 299 of file TypeRecord.h.

References Attrs, PointerKindMask, and PointerKindShift.

TypeIndex llvm::codeview::PointerRecord::getReferentType ( ) const
inline

Definition at line 297 of file TypeRecord.h.

References ReferentType.

uint8_t llvm::codeview::PointerRecord::getSize ( ) const
inline

Definition at line 313 of file TypeRecord.h.

References Attrs, PointerSizeMask, and PointerSizeShift.

bool llvm::codeview::PointerRecord::isConst ( ) const
inline

Definition at line 325 of file TypeRecord.h.

References Attrs, and llvm::codeview::Const.

bool llvm::codeview::PointerRecord::isFlat ( ) const
inline

Definition at line 324 of file TypeRecord.h.

References Attrs, and llvm::codeview::Flat32.

bool llvm::codeview::PointerRecord::isPointerToMember ( ) const
inline
bool llvm::codeview::PointerRecord::isUnaligned ( ) const
inline

Definition at line 331 of file TypeRecord.h.

References Attrs, and llvm::codeview::Unaligned.

bool llvm::codeview::PointerRecord::isVolatile ( ) const
inline

Definition at line 327 of file TypeRecord.h.

References Attrs, and llvm::codeview::Volatile.

bool PointerRecord::remapTypeIndices ( ArrayRef< TypeIndex IndexMap)

Rewrite member type indices with IndexMap.

Returns false if a type index is not in the map.

Definition at line 77 of file TypeRecord.cpp.

References isPointerToMember(), MemberInfo, ReferentType, remapIndex(), and Success.

Member Data Documentation

uint32_t llvm::codeview::PointerRecord::Attrs
Optional<MemberPointerInfo> llvm::codeview::PointerRecord::MemberInfo

Definition at line 338 of file TypeRecord.h.

Referenced by getMemberInfo(), and remapTypeIndices().

const uint32_t llvm::codeview::PointerRecord::PointerKindMask = 0x1F
static

Definition at line 261 of file TypeRecord.h.

Referenced by getPointerKind().

const uint32_t llvm::codeview::PointerRecord::PointerKindShift = 0
static

Definition at line 260 of file TypeRecord.h.

Referenced by getPointerKind().

const uint32_t llvm::codeview::PointerRecord::PointerModeMask = 0x07
static

Definition at line 264 of file TypeRecord.h.

Referenced by getMode().

const uint32_t llvm::codeview::PointerRecord::PointerModeShift = 5
static

Definition at line 263 of file TypeRecord.h.

Referenced by getMode().

const uint32_t llvm::codeview::PointerRecord::PointerOptionMask = 0xFF
static

Definition at line 266 of file TypeRecord.h.

const uint32_t llvm::codeview::PointerRecord::PointerSizeMask = 0xFF
static

Definition at line 269 of file TypeRecord.h.

Referenced by getSize().

const uint32_t llvm::codeview::PointerRecord::PointerSizeShift = 13
static

Definition at line 268 of file TypeRecord.h.

Referenced by getSize().

TypeIndex llvm::codeview::PointerRecord::ReferentType

Definition at line 335 of file TypeRecord.h.

Referenced by getReferentType(), and remapTypeIndices().


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