LLVM API Documentation

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

#include <DebugInfo.h>

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

Public Member Functions

 DIVariable (const MDNode *N=0)
 
DIScope getContext () const
 
StringRef getName () const
 
DIFile getFile () const
 
unsigned getLineNumber () const
 
unsigned getArgNumber () const
 
DIType getType () const
 
bool isArtificial () const
 isArtificial - Return true if this variable is marked as "artificial". More...
 
bool isObjectPointer () const
 
bool isIndirect () const
 Return true if this variable is represented as a pointer. More...
 
MDNodegetInlinedAt () const
 getInlinedAt - If this variable is inlined then return inline location. More...
 
bool Verify () const
 Verify - Verify that a variable descriptor is well formed. More...
 
bool hasComplexAddress () const
 HasComplexAddr - Return true if the variable has a complex address. More...
 
unsigned getNumAddrElements () const
 
uint64_t getAddrElement (unsigned Idx) const
 
bool isBlockByrefVariable () const
 
bool isInlinedFnArgument (const Function *CurFn)
 
void printExtendedName (raw_ostream &OS) 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...
 

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 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...
 
- Protected Attributes inherited from llvm::DIDescriptor
const MDNodeDbgNode
 

Detailed Description

DIVariable - This is a wrapper for a variable (e.g. parameter, local, global etc).

Definition at line 605 of file DebugInfo.h.

Constructor & Destructor Documentation

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

Definition at line 610 of file DebugInfo.h.

Member Function Documentation

uint64_t llvm::DIVariable::getAddrElement ( unsigned  Idx) const
inline

Definition at line 647 of file DebugInfo.h.

References llvm::DIDescriptor::getUInt64Field().

Referenced by llvm::DbgVariable::getAddrElement().

unsigned llvm::DIVariable::getArgNumber ( ) const
inline

Definition at line 616 of file DebugInfo.h.

References llvm::DIDescriptor::getUnsignedField().

DIScope llvm::DIVariable::getContext ( ) const
inline
DIFile llvm::DIVariable::getFile ( ) const
inline

Definition at line 614 of file DebugInfo.h.

MDNode * DIVariable::getInlinedAt ( ) const

getInlinedAt - If this variable is inlined then return inline location.

Definition at line 144 of file DebugInfo.cpp.

References getNodeField().

Referenced by llvm::MachineInstr::print().

unsigned llvm::DIVariable::getLineNumber ( ) const
inline
StringRef llvm::DIVariable::getName ( ) const
inline
unsigned DIVariable::getNumAddrElements ( ) const

Definition at line 139 of file DebugInfo.cpp.

Referenced by llvm::DbgVariable::getNumAddrElements(), and hasComplexAddress().

DIType llvm::DIVariable::getType ( ) const
inline

Definition at line 620 of file DebugInfo.h.

Referenced by llvm::DbgVariable::getType(), and isBlockByrefVariable().

bool llvm::DIVariable::hasComplexAddress ( ) const
inline

HasComplexAddr - Return true if the variable has a complex address.

Definition at line 643 of file DebugInfo.h.

References getNumAddrElements().

Referenced by llvm::DbgVariable::variableHasComplexAddress().

bool llvm::DIVariable::isArtificial ( ) const
inline

isArtificial - Return true if this variable is marked as "artificial".

Definition at line 623 of file DebugInfo.h.

References llvm::DIDescriptor::FlagArtificial, and llvm::DIDescriptor::getUnsignedField().

Referenced by llvm::DbgVariable::isArtificial().

bool llvm::DIVariable::isBlockByrefVariable ( ) const
inline

isBlockByrefVariable - Return true if the variable was declared as a "__block" variable (Apple Blocks).

Definition at line 653 of file DebugInfo.h.

References getType(), and llvm::DIType::isBlockByrefStruct().

Referenced by llvm::DbgVariable::getType(), and llvm::DbgVariable::isBlockByrefVariable().

bool llvm::DIVariable::isIndirect ( ) const
inline

Return true if this variable is represented as a pointer.

Definition at line 632 of file DebugInfo.h.

References llvm::DIDescriptor::FlagIndirectVariable, and llvm::DIDescriptor::getUnsignedField().

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

bool DIVariable::isInlinedFnArgument ( const Function CurFn)

isInlinedFnArgument - Return true if this variable provides debugging information for an inlined function arguments.

Definition at line 694 of file DebugInfo.cpp.

References llvm::DISubprogram::describes().

bool llvm::DIVariable::isObjectPointer ( ) const
inline
void DIVariable::printExtendedName ( raw_ostream OS) const
bool DIVariable::Verify ( ) const

Verify - Verify that a variable descriptor is well formed.

Definition at line 547 of file DebugInfo.cpp.

References fieldIsMDNode().

Referenced by llvm::DIDescriptor::Verify().

Friends And Related Function Documentation

friend class DIDescriptor
friend

Definition at line 606 of file DebugInfo.h.


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