LLVM 22.0.0git
Public Member Functions | List of all members
llvm::MCSymbolMachO Class Reference

#include "llvm/MC/MCSymbolMachO.h"

Inheritance diagram for llvm::MCSymbolMachO:
[legend]

Public Member Functions

 MCSymbolMachO (const MCSymbolTableEntry *Name, bool isTemporary)
 
bool isExternal () const
 
void setExternal (bool Value) const
 
bool isPrivateExtern () const
 
void setPrivateExtern (bool Value)
 
void clearReferenceType () const
 
void setReferenceTypeUndefinedLazy (bool Value) const
 
void setThumbFunc () const
 
bool isNoDeadStrip () const
 
void setNoDeadStrip () const
 
bool isWeakReference () const
 
void setWeakReference () const
 
bool isWeakDefinition () const
 
void setWeakDefinition () const
 
bool isSymbolResolver () const
 
void setSymbolResolver () const
 
void setAltEntry () const
 
bool isAltEntry () const
 
void setCold () const
 
bool isCold () const
 
void setDesc (unsigned Value) const
 
bool isSymbolLinkerVisible () const
 
uint16_t getEncodedFlags (bool EncodeAsAltEntry) const
 Get the encoded value of the flags as they will be emitted in to the MachO binary.
 
- Public Member Functions inherited from llvm::MCSymbol
StringRef getName () const
 getName - Get the symbol name.
 
bool isRegistered () const
 
void setIsRegistered (bool Value) const
 
void setUsedInReloc () const
 
bool isUsedInReloc () const
 
uint32_t getIndex () const
 Get the (implementation defined) index.
 
void setIndex (uint32_t Value) const
 Set the (implementation defined) index.
 
uint64_t getOffset () const
 
void setOffset (uint64_t Value)
 
uint64_t getCommonSize () const
 Return the size of a 'common' symbol.
 
void setCommon (uint64_t Size, Align Alignment)
 Mark this symbol as being 'common'.
 
MaybeAlign getCommonAlignment () const
 Return the alignment of a 'common' symbol.
 
bool declareCommon (uint64_t Size, Align Alignment)
 Declare this symbol as being 'common'.
 
bool isCommon () const
 Is this a 'common' symbol.
 
MCFragmentgetFragment () const
 
bool isWeakExternal () const
 
LLVM_ABI void print (raw_ostream &OS, const MCAsmInfo *MAI) const
 print - Print the value to the stream OS.
 
LLVM_ABI void dump () const
 dump - Print the value to stderr.
 
bool isTemporary () const
 isTemporary - Check if this is an assembler temporary symbol.
 
bool isRedefinable () const
 Check if this symbol is redefinable.
 
void setRedefinable (bool Value)
 Mark this symbol as redefinable.
 
void redefineIfPossible ()
 Prepare this symbol to be redefined.
 
bool isResolving () const
 
void setIsResolving (bool V)
 
bool isDefined () const
 isDefined - Check if this symbol is defined (i.e., it has an address).
 
bool isInSection () const
 isInSection - Check if this symbol is defined in some section (i.e., it is defined but not absolute).
 
bool isUndefined () const
 isUndefined - Check if this symbol undefined (i.e., implicitly defined).
 
bool isAbsolute () const
 isAbsolute - Check if this is an absolute symbol.
 
MCSectiongetSection () const
 Get the section associated with a defined, non-absolute symbol.
 
void setFragment (MCFragment *F) const
 Mark the symbol as defined in the fragment F.
 
bool isVariable () const
 isVariable - Check if this is a variable symbol.
 
const MCExprgetVariableValue () const
 Get the expression of the variable symbol.
 
LLVM_ABI void setVariableValue (const MCExpr *Value)
 

Additional Inherited Members

- Protected Types inherited from llvm::MCSymbol
enum  Kind : uint8_t { Regular , Equated , Common }
 
enum  : unsigned { NumCommonAlignmentBits = 5 }
 The alignment of the symbol if it is 'common'. More...
 
enum  : unsigned { NumFlagsBits = 16 }
 The Flags field is used by object file implementations to store additional per symbol information which is not easily classified. More...
 
using NameEntryStorageTy = union { const MCSymbolTableEntry *NameEntry
 The name for a symbol.
 
- Protected Member Functions inherited from llvm::MCSymbol
 MCSymbol (const MCSymbolTableEntry *Name, bool isTemporary)
 
 MCSymbol (const MCSymbol &)=default
 
MCSymboloperator= (const MCSymbol &)=delete
 
LLVM_ABI void * operator new (size_t s, const MCSymbolTableEntry *Name, MCContext &Ctx)
 
uint32_t getFlags () const
 Get the (implementation defined) symbol flags.
 
void setFlags (uint32_t Value) const
 Set the (implementation defined) symbol flags.
 
void modifyFlags (uint32_t Value, uint32_t Mask) const
 Modify the flags via a mask.
 
- Protected Attributes inherited from llvm::MCSymbol
MCFragmentFragment = nullptr
 If a symbol has a Fragment, the section is implied, so we only need one pointer.
 
unsigned kind: 2
 The symbol kind.
 
unsigned HasName: 1
 True if this symbol is named.
 
unsigned IsTemporary: 1
 IsTemporary - True if this is an assembler temporary label, which typically does not survive in the .o file's symbol table.
 
unsigned IsRedefinable: 1
 True if this symbol can be redefined.
 
unsigned IsRegistered: 1
 
unsigned IsExternal: 1
 True if this symbol is visible outside this translation unit.
 
unsigned IsPrivateExtern: 1
 Mach-O specific: This symbol is private extern.
 
unsigned IsWeakExternal: 1
 This symbol is weak external.
 
unsigned IsUsedInReloc: 1
 True if we have created a relocation that uses this symbol.
 
unsigned IsResolving: 1
 Used to detect cyclic dependency like a = a + 1 and a = b; b = a.
 
unsigned CommonAlignLog2: NumCommonAlignmentBits
 
uint32_t Flags: NumFlagsBits
 
uint32_t Index = 0
 Index field, for use by the object file implementation.
 
union {
   uint64_t   Offset
 The offset to apply to the fragment address to form this symbol's value. More...
 
   uint64_t   CommonSize
 The size of the symbol, if it is 'common'. More...
 
   const MCExpr *   Value
 If non-null, the value for a variable symbol. More...
 
}; 
 
uint64_t AlignmentPadding
 
- Static Protected Attributes inherited from llvm::MCSymbol
static LLVM_ABI MCFragmentAbsolutePseudoFragment = &SentinelFragment
 

Detailed Description

Definition at line 16 of file MCSymbolMachO.h.

Constructor & Destructor Documentation

◆ MCSymbolMachO()

llvm::MCSymbolMachO::MCSymbolMachO ( const MCSymbolTableEntry Name,
bool  isTemporary 
)
inline

Definition at line 46 of file MCSymbolMachO.h.

Member Function Documentation

◆ clearReferenceType()

void llvm::MCSymbolMachO::clearReferenceType ( ) const
inline

Definition at line 56 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ getEncodedFlags()

uint16_t llvm::MCSymbolMachO::getEncodedFlags ( bool  EncodeAsAltEntry) const
inline

◆ isAltEntry()

bool llvm::MCSymbolMachO::isAltEntry ( ) const
inline

Definition at line 103 of file MCSymbolMachO.h.

References llvm::MCSymbol::getFlags().

Referenced by llvm::MachObjectWriter::writeNlist().

◆ isCold()

bool llvm::MCSymbolMachO::isCold ( ) const
inline

Definition at line 109 of file MCSymbolMachO.h.

References llvm::MCSymbol::getFlags().

◆ isExternal()

bool llvm::MCSymbolMachO::isExternal ( ) const
inline

Definition at line 49 of file MCSymbolMachO.h.

References llvm::MCSymbol::IsExternal.

◆ isNoDeadStrip()

bool llvm::MCSymbolMachO::isNoDeadStrip ( ) const
inline

Definition at line 71 of file MCSymbolMachO.h.

References llvm::MCSymbol::getFlags().

◆ isPrivateExtern()

bool llvm::MCSymbolMachO::isPrivateExtern ( ) const
inline

Definition at line 51 of file MCSymbolMachO.h.

References llvm::MCSymbol::IsPrivateExtern.

◆ isSymbolLinkerVisible()

bool llvm::MCSymbolMachO::isSymbolLinkerVisible ( ) const
inline

◆ isSymbolResolver()

bool llvm::MCSymbolMachO::isSymbolResolver ( ) const
inline

Definition at line 92 of file MCSymbolMachO.h.

References llvm::MCSymbol::getFlags().

◆ isWeakDefinition()

bool llvm::MCSymbolMachO::isWeakDefinition ( ) const
inline

Definition at line 85 of file MCSymbolMachO.h.

References llvm::MCSymbol::getFlags().

◆ isWeakReference()

bool llvm::MCSymbolMachO::isWeakReference ( ) const
inline

Definition at line 78 of file MCSymbolMachO.h.

References llvm::MCSymbol::getFlags().

◆ setAltEntry()

void llvm::MCSymbolMachO::setAltEntry ( ) const
inline

Definition at line 99 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ setCold()

void llvm::MCSymbolMachO::setCold ( ) const
inline

Definition at line 107 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ setDesc()

void llvm::MCSymbolMachO::setDesc ( unsigned  Value) const
inline

Definition at line 111 of file MCSymbolMachO.h.

References assert(), and llvm::MCSymbol::setFlags().

◆ setExternal()

void llvm::MCSymbolMachO::setExternal ( bool  Value) const
inline

Definition at line 50 of file MCSymbolMachO.h.

References llvm::MCSymbol::IsExternal, and llvm::MCSymbol::Value.

◆ setNoDeadStrip()

void llvm::MCSymbolMachO::setNoDeadStrip ( ) const
inline

Definition at line 74 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ setPrivateExtern()

void llvm::MCSymbolMachO::setPrivateExtern ( bool  Value)
inline

Definition at line 52 of file MCSymbolMachO.h.

References llvm::MCSymbol::IsPrivateExtern, and llvm::MCSymbol::Value.

◆ setReferenceTypeUndefinedLazy()

void llvm::MCSymbolMachO::setReferenceTypeUndefinedLazy ( bool  Value) const
inline

◆ setSymbolResolver()

void llvm::MCSymbolMachO::setSymbolResolver ( ) const
inline

Definition at line 95 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ setThumbFunc()

void llvm::MCSymbolMachO::setThumbFunc ( ) const
inline

Definition at line 67 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ setWeakDefinition()

void llvm::MCSymbolMachO::setWeakDefinition ( ) const
inline

Definition at line 88 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().

◆ setWeakReference()

void llvm::MCSymbolMachO::setWeakReference ( ) const
inline

Definition at line 81 of file MCSymbolMachO.h.

References llvm::MCSymbol::modifyFlags().


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