LLVM API Documentation

Public Member Functions | Friends
llvm::DISubprogram Class Reference

DISubprogram - This is a wrapper for a subprogram (e.g. a function). More...

#include <DebugInfo.h>

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

List of all members.

Public Member Functions

 DISubprogram (const MDNode *N=nullptr)
DIScopeRef getContext () const
StringRef getName () const
 If the scope node has a name, return that, else return an empty string.
StringRef getDisplayName () const
StringRef getLinkageName () const
unsigned getLineNumber () const
DISubroutineType getType () const
unsigned isLocalToUnit () const
unsigned isDefinition () const
unsigned getVirtuality () const
unsigned getVirtualIndex () const
DITypeRef getContainingType () const
unsigned getFlags () const
unsigned isArtificial () const
bool isPrivate () const
bool isProtected () const
bool isPublic () const
bool isExplicit () const
 isExplicit - Return true if this subprogram is marked as explicit.
bool isPrototyped () const
 isPrototyped - Return true if this subprogram is prototyped.
unsigned isLValueReference () const
unsigned isRValueReference () const
unsigned isOptimized () const
bool Verify () const
 Verify - Verify that a subprogram descriptor is well formed.
bool describes (const Function *F)
FunctiongetFunction () const
void replaceFunction (Function *F)
DIArray getTemplateParams () const
DISubprogram getFunctionDeclaration () const
MDNodegetVariablesNodes () const
DIArray getVariables () const
unsigned getScopeLineNumber () const

Friends

class DIDescriptor

Detailed Description

DISubprogram - This is a wrapper for a subprogram (e.g. a function).

Definition at line 487 of file DebugInfo.h.


Constructor & Destructor Documentation

llvm::DISubprogram::DISubprogram ( const MDNode N = nullptr) [inline, explicit]

Definition at line 492 of file DebugInfo.h.

References N.


Member Function Documentation

describes - Return true if this subprogram provides debugging information for the function F.

Definition at line 737 of file DebugInfo.cpp.

References llvm::StringRef::empty(), llvm::Intrinsic::getName(), llvm::Value::getName(), and Name.

Referenced by llvm::DIVariable::isInlinedFnArgument().

Definition at line 509 of file DebugInfo.h.

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Gets the parent scope for this scope node or returns a default constructed scope.

Reimplemented from llvm::DIScope.

Definition at line 494 of file DebugInfo.h.

Referenced by llvm::DwarfUnit::applySubprogramAttributesToDefinition(), and llvm::DwarfUnit::getOrCreateSubprogramDIE().

Definition at line 496 of file DebugInfo.h.

References llvm::DIDescriptor::getStringField().

Definition at line 511 of file DebugInfo.h.

References llvm::DIDescriptor::getUnsignedField().

Referenced by isPrivate(), isProtected(), and isPublic().

Definition at line 560 of file DebugInfo.h.

References llvm::DIDescriptor::getFunctionField().

Referenced by fixupSubprogramName(), and llvm::makeSubprogramMap().

getScopeLineNumber - Get the beginning of the scope of the function, not necessarily where the name of the program starts.

Definition at line 572 of file DebugInfo.h.

References llvm::DIDescriptor::getUnsignedField().

Referenced by llvm::DebugLoc::getFnDebugLoc().

Definition at line 562 of file DebugInfo.h.

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Definition at line 499 of file DebugInfo.h.

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Definition at line 760 of file DebugInfo.cpp.

References getNodeField().

Referenced by llvm::DwarfDebug::endFunction().

Definition at line 756 of file DebugInfo.cpp.

References getNodeField().

isExplicit - Return true if this subprogram is marked as explicit.

Definition at line 532 of file DebugInfo.h.

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

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

isLocalToUnit - Return true if this subprogram is local to the current compile unit, like 'static' in C.

Definition at line 503 of file DebugInfo.h.

References llvm::DIDescriptor::getUnsignedField().

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Return true if this subprogram is a C++11 reference-qualified non-static member function (void foo() &).

Definition at line 540 of file DebugInfo.h.

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

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Definition at line 749 of file DebugInfo.cpp.

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

bool llvm::DISubprogram::isPrivate ( ) const [inline]

isPrivate - Return true if this subprogram has "private" access specifier.

Definition at line 518 of file DebugInfo.h.

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

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

isProtected - Return true if this subprogram has "protected" access specifier.

Definition at line 523 of file DebugInfo.h.

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

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

isPrototyped - Return true if this subprogram is prototyped.

Definition at line 534 of file DebugInfo.h.

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

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

bool llvm::DISubprogram::isPublic ( ) const [inline]

isPublic - Return true if this subprogram has "public" access specifier.

Definition at line 528 of file DebugInfo.h.

References llvm::DIDescriptor::FlagAccessibility, llvm::DIDescriptor::FlagPublic, and getFlags().

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Return true if this subprogram is a C++11 rvalue-reference-qualified non-static member function (void foo() &&).

Definition at line 547 of file DebugInfo.h.

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

Referenced by llvm::DwarfUnit::applySubprogramAttributes().

Definition at line 561 of file DebugInfo.h.

References llvm::DIDescriptor::replaceFunctionField().

Verify - Verify that a subprogram descriptor is well formed.

Reimplemented from llvm::DIDescriptor.

Definition at line 547 of file DebugInfo.cpp.

References fieldIsMDNode(), fieldIsScopeRef(), and fieldIsTypeRef().

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


Friends And Related Function Documentation

friend class DIDescriptor [friend]

Reimplemented from llvm::DIScope.

Definition at line 488 of file DebugInfo.h.


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