LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::DIType Class Reference

#include <DebugInfo.h>

Inheritance diagram for llvm::DIType:
Inheritance graph
[legend]
Collaboration diagram for llvm::DIType:
Collaboration graph
[legend]

Public Member Functions

 DIType (const MDNode *N=0)
 
bool Verify () const
 Verify - Verify that a type descriptor is well formed. More...
 
DIScopeRef getContext () const
 
StringRef getName () const
 
unsigned getLineNumber () const
 
uint64_t getSizeInBits () const
 
uint64_t getAlignInBits () const
 
uint64_t getOffsetInBits () const
 
unsigned getFlags () const
 
bool isPrivate () const
 
bool isProtected () const
 
bool isForwardDecl () const
 
bool isAppleBlockExtension () const
 
bool isBlockByrefStruct () const
 
bool isVirtual () const
 
bool isArtificial () const
 
bool isObjectPointer () const
 
bool isObjcClassComplete () const
 
bool isVector () const
 
bool isStaticMember () const
 
bool isValid () const
 
void replaceAllUsesWith (DIDescriptor &D)
 
void replaceAllUsesWith (MDNode *D)
 
- Public Member Functions inherited from llvm::DIScope
 DIScope (const MDNode *N=0)
 
DIScopeRef getContext () const
 
StringRef getName () const
 If the scope node has a name, return that, else return an empty string. More...
 
StringRef getFilename () const
 
StringRef getDirectory () const
 
DIScopeRef getRef () const
 
- Public Member Functions inherited from llvm::DIDescriptor
 DIDescriptor (const MDNode *N=0)
 
bool Verify () const
 
 operator MDNode * () const
 
MDNodeoperator-> () const
 
LLVM_EXPLICIT operator bool () const
 
bool operator== (DIDescriptor Other) const
 
bool operator!= (DIDescriptor Other) const
 
uint16_t getTag () const
 
bool isDerivedType () const
 isDerivedType - Return true if the specified tag is legal for DIDerivedType. More...
 
bool isCompositeType () const
 
bool isBasicType () const
 
bool isVariable () const
 isVariable - Return true if the specified tag is legal for DIVariable. More...
 
bool isSubprogram () const
 
bool isGlobalVariable () const
 
bool isScope () const
 
bool isFile () const
 isFile - Return true if the specified tag is DW_TAG_file_type. More...
 
bool isCompileUnit () const
 isCompileUnit - Return true if the specified tag is DW_TAG_compile_unit. More...
 
bool isNameSpace () const
 isNameSpace - Return true if the specified tag is DW_TAG_namespace. More...
 
bool isLexicalBlockFile () const
 
bool isLexicalBlock () const
 isLexicalBlock - Return true if the specified tag is DW_TAG_lexical_block. More...
 
bool isSubrange () const
 isSubrange - Return true if the specified tag is DW_TAG_subrange_type. More...
 
bool isEnumerator () const
 isEnumerator - Return true if the specified tag is DW_TAG_enumerator. More...
 
bool isType () const
 isType - Return true if the specified tag is legal for DIType. More...
 
bool isUnspecifiedParameter () const
 
bool isTemplateTypeParameter () const
 
bool isTemplateValueParameter () const
 
bool isObjCProperty () const
 isObjCProperty - Return true if the specified tag is DW_TAG_APPLE_property. More...
 
bool isImportedEntity () const
 Return true if the specified tag is DW_TAG_imported_module or DW_TAG_imported_declaration. More...
 
void print (raw_ostream &OS) const
 print - print descriptor. More...
 
void dump () const
 dump - print descriptor to dbgs() with a newline. More...
 

Protected Member Functions

void printInternal (raw_ostream &OS) const
 
- Protected Member Functions inherited from llvm::DIScope
void printInternal (raw_ostream &OS) const
 
- Protected Member Functions inherited from llvm::DIDescriptor
StringRef getStringField (unsigned Elt) const
 
unsigned getUnsignedField (unsigned Elt) const
 
uint64_t getUInt64Field (unsigned Elt) const
 
int64_t getInt64Field (unsigned Elt) const
 
DIDescriptor getDescriptorField (unsigned Elt) const
 
template<typename DescTy >
DescTy getFieldAs (unsigned Elt) const
 
GlobalVariablegetGlobalVariableField (unsigned Elt) const
 
ConstantgetConstantField (unsigned Elt) const
 
FunctiongetFunctionField (unsigned Elt) const
 
void replaceFunctionField (unsigned Elt, Function *F)
 
template<>
DIScopeRef getFieldAs (unsigned Elt) const
 Specialize getFieldAs to handle fields that are references to DIScopes. More...
 
template<>
DITypeRef getFieldAs (unsigned Elt) const
 Specialize getFieldAs to handle fields that are references to DITypes. More...
 
template<>
DIScopeRef getFieldAs (unsigned Elt) const
 Specialize getFieldAs to handle fields that are references to DIScopes. More...
 
template<>
DITypeRef getFieldAs (unsigned Elt) const
 Specialize getFieldAs to handle fields that are references to DITypes. More...
 

Friends

class DIDescriptor
 

Additional Inherited Members

- Public Types inherited from llvm::DIDescriptor
enum  {
  FlagPrivate = 1 << 0, FlagProtected = 1 << 1, FlagFwdDecl = 1 << 2, FlagAppleBlock = 1 << 3,
  FlagBlockByrefStruct = 1 << 4, FlagVirtual = 1 << 5, FlagArtificial = 1 << 6, FlagExplicit = 1 << 7,
  FlagPrototyped = 1 << 8, FlagObjcClassComplete = 1 << 9, FlagObjectPointer = 1 << 10, FlagVector = 1 << 11,
  FlagStaticMember = 1 << 12, FlagIndirectVariable = 1 << 13
}
 
- Protected Attributes inherited from llvm::DIDescriptor
const MDNodeDbgNode
 

Detailed Description

DIType - This is a wrapper for a type. FIXME: Types should be factored much better so that CV qualifiers and others do not require a huge and empty descriptor full of zeros.

Definition at line 278 of file DebugInfo.h.

Constructor & Destructor Documentation

llvm::DIType::DIType ( const MDNode N = 0)
inlineexplicit

Definition at line 284 of file DebugInfo.h.

Member Function Documentation

uint64_t llvm::DIType::getAlignInBits ( ) const
inline

Definition at line 293 of file DebugInfo.h.

References llvm::DIDescriptor::getUInt64Field().

DIScopeRef llvm::DIType::getContext ( ) const
inline
unsigned llvm::DIType::getFlags ( ) const
inline
unsigned llvm::DIType::getLineNumber ( ) const
inline

Definition at line 291 of file DebugInfo.h.

References llvm::DIDescriptor::getUnsignedField().

Referenced by llvm::CompileUnit::addSourceLine().

StringRef llvm::DIType::getName ( ) const
inline
uint64_t llvm::DIType::getOffsetInBits ( ) const
inline
uint64_t llvm::DIType::getSizeInBits ( ) const
inline

Definition at line 292 of file DebugInfo.h.

References llvm::DIDescriptor::getUInt64Field().

Referenced by getBaseTypeSize(), and isTypeSigned().

bool llvm::DIType::isAppleBlockExtension ( ) const
inline

Definition at line 302 of file DebugInfo.h.

References llvm::DIDescriptor::FlagAppleBlock, and getFlags().

bool llvm::DIType::isArtificial ( ) const
inline
bool llvm::DIType::isBlockByrefStruct ( ) const
inline
bool llvm::DIType::isForwardDecl ( ) const
inline
bool llvm::DIType::isObjcClassComplete ( ) const
inline
bool llvm::DIType::isObjectPointer ( ) const
inline
bool llvm::DIType::isPrivate ( ) const
inline

Definition at line 298 of file DebugInfo.h.

References llvm::DIDescriptor::FlagPrivate, and getFlags().

bool llvm::DIType::isProtected ( ) const
inline

Definition at line 299 of file DebugInfo.h.

References llvm::DIDescriptor::FlagProtected, and getFlags().

bool llvm::DIType::isStaticMember ( ) const
inline
bool llvm::DIType::isValid ( ) const
inline

Definition at line 316 of file DebugInfo.h.

References llvm::DIDescriptor::DbgNode, and llvm::DIDescriptor::isType().

Referenced by getBaseTypeSize().

bool llvm::DIType::isVector ( ) const
inline

Definition at line 314 of file DebugInfo.h.

References llvm::DIDescriptor::FlagVector, and getFlags().

bool llvm::DIType::isVirtual ( ) const
inline

Definition at line 308 of file DebugInfo.h.

References llvm::DIDescriptor::FlagVirtual, and getFlags().

void DIType::printInternal ( raw_ostream OS) const
protected
void DIType::replaceAllUsesWith ( DIDescriptor D)

replaceAllUsesWith - Replace all uses of debug info referenced by this descriptor.

replaceAllUsesWith - Replace all uses of the MDNode used by this type with the one in the passed descriptor.

Definition at line 336 of file DebugInfo.cpp.

References llvm::MDNode::deleteTemporary(), and llvm::Value::replaceAllUsesWith().

Referenced by llvm::DIBuilder::finalize().

void DIType::replaceAllUsesWith ( MDNode D)

replaceAllUsesWith - Replace all uses of the MDNode used by this type with the one in D.

Definition at line 356 of file DebugInfo.cpp.

References llvm::MDNode::deleteTemporary(), and llvm::Value::replaceAllUsesWith().

bool DIType::Verify ( ) const

Verify - Verify that a type descriptor is well formed.

Definition at line 441 of file DebugInfo.cpp.

References fieldIsScopeRef(), llvm::dwarf::isType(), llvm::DIBasicType::Verify(), llvm::DIDerivedType::Verify(), and llvm::DICompositeType::Verify().

Friends And Related Function Documentation

friend class DIDescriptor
friend

Definition at line 280 of file DebugInfo.h.


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