LLVM  8.0.1
Public Types | Public Member Functions | Friends | List of all members
llvm::object::SymbolRef Class Reference

This is a value type class that represents a single symbol in the list of symbols in the object file. More...

#include "llvm/Object/ObjectFile.h"

Inheritance diagram for llvm::object::SymbolRef:
Inheritance graph
[legend]
Collaboration diagram for llvm::object::SymbolRef:
Collaboration graph
[legend]

Public Types

enum  Type {
  ST_Unknown, ST_Data, ST_Debug, ST_File,
  ST_Function, ST_Other
}
 
- Public Types inherited from llvm::object::BasicSymbolRef
enum  Flags : unsigned {
  SF_None = 0, SF_Undefined = 1U << 0, SF_Global = 1U << 1, SF_Weak = 1U << 2,
  SF_Absolute = 1U << 3, SF_Common = 1U << 4, SF_Indirect = 1U << 5, SF_Exported = 1U << 6,
  SF_FormatSpecific = 1U << 7, SF_Thumb = 1U << 8, SF_Hidden = 1U << 9, SF_Const = 1U << 10,
  SF_Executable = 1U << 11
}
 

Public Member Functions

 SymbolRef ()=default
 
 SymbolRef (DataRefImpl SymbolP, const ObjectFile *Owner)
 
 SymbolRef (const BasicSymbolRef &B)
 
Expected< StringRefgetName () const
 
Expected< uint64_t > getAddress () const
 Returns the symbol virtual address (i.e. More...
 
uint64_t getValue () const
 Return the value of the symbol depending on the object this can be an offset or a virtual address. More...
 
uint32_t getAlignment () const
 Get the alignment of this symbol as the actual value (not log 2). More...
 
uint64_t getCommonSize () const
 
Expected< SymbolRef::TypegetType () const
 
Expected< section_iteratorgetSection () const
 Get section this symbol is defined in reference to. More...
 
const ObjectFilegetObject () const
 
- Public Member Functions inherited from llvm::object::BasicSymbolRef
 BasicSymbolRef ()=default
 
 BasicSymbolRef (DataRefImpl SymbolP, const SymbolicFile *Owner)
 
bool operator== (const BasicSymbolRef &Other) const
 
bool operator< (const BasicSymbolRef &Other) const
 
void moveNext ()
 
std::error_code printName (raw_ostream &OS) const
 
uint32_t getFlags () const
 Get symbol flags (bitwise OR of SymbolRef::Flags) More...
 
DataRefImpl getRawDataRefImpl () const
 
const SymbolicFilegetObject () const
 

Friends

class SectionRef
 

Detailed Description

This is a value type class that represents a single symbol in the list of symbols in the object file.

Definition at line 141 of file ObjectFile.h.

Member Enumeration Documentation

◆ Type

Enumerator
ST_Unknown 
ST_Data 
ST_Debug 
ST_File 
ST_Function 
ST_Other 

Definition at line 145 of file ObjectFile.h.

Constructor & Destructor Documentation

◆ SymbolRef() [1/3]

llvm::object::SymbolRef::SymbolRef ( )
default

◆ SymbolRef() [2/3]

llvm::object::SymbolRef::SymbolRef ( DataRefImpl  SymbolP,
const ObjectFile Owner 
)
inline

Definition at line 356 of file ObjectFile.h.

◆ SymbolRef() [3/3]

llvm::object::SymbolRef::SymbolRef ( const BasicSymbolRef B)
inline

Member Function Documentation

◆ getAddress()

Expected< uint64_t > llvm::object::SymbolRef::getAddress ( ) const
inline

Returns the symbol virtual address (i.e.

address at which it will be mapped).

Definition at line 363 of file ObjectFile.h.

References getObject(), llvm::object::BasicSymbolRef::getRawDataRefImpl(), and llvm::object::ObjectFile::getSymbolAddress().

Referenced by llvm::symbolize::SymbolizableObjectFile::create(), llvm::getOffset(), and getSymbolInfo().

◆ getAlignment()

uint32_t llvm::object::SymbolRef::getAlignment ( ) const
inline

Get the alignment of this symbol as the actual value (not log 2).

Definition at line 371 of file ObjectFile.h.

References getObject(), llvm::object::BasicSymbolRef::getRawDataRefImpl(), and llvm::object::ObjectFile::getSymbolAlignment().

◆ getCommonSize()

uint64_t llvm::object::SymbolRef::getCommonSize ( ) const
inline

◆ getName()

Expected< StringRef > llvm::object::SymbolRef::getName ( ) const
inline

◆ getObject()

const ObjectFile * llvm::object::SymbolRef::getObject ( ) const
inline

◆ getSection()

Expected< section_iterator > llvm::object::SymbolRef::getSection ( ) const
inline

Get section this symbol is defined in reference to.

Result is end_sections() if it is undefined or is an absolute symbol.

Definition at line 379 of file ObjectFile.h.

References getObject(), llvm::object::BasicSymbolRef::getRawDataRefImpl(), and llvm::object::ObjectFile::getSymbolSection().

Referenced by llvm::object::SectionRef::containsSymbol(), getSymbolInfo(), llvm::RuntimeDyldELF::loadObject(), and llvm::RuntimeDyldCOFFX86_64::processRelocationRef().

◆ getType()

Expected< SymbolRef::Type > llvm::object::SymbolRef::getType ( ) const
inline

◆ getValue()

uint64_t llvm::object::SymbolRef::getValue ( ) const
inline

Return the value of the symbol depending on the object this can be an offset or a virtual address.

Definition at line 367 of file ObjectFile.h.

References getObject(), llvm::object::BasicSymbolRef::getRawDataRefImpl(), and llvm::object::ObjectFile::getSymbolValue().

Referenced by llvm::object::computeSymbolSizes(), and llvm::RuntimeDyldCOFF::getSymbolOffset().

Friends And Related Function Documentation

◆ SectionRef

friend class SectionRef
friend

Definition at line 142 of file ObjectFile.h.


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