LLVM 19.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::MCSymbolXCOFF Class Reference

#include "llvm/MC/MCSymbolXCOFF.h"

Inheritance diagram for llvm::MCSymbolXCOFF:
Inheritance graph

Public Types

enum  CodeModel : uint8_t { CM_Small , CM_Large }

Public Member Functions

 MCSymbolXCOFF (const StringMapEntry< bool > *Name, bool isTemporary)
void setStorageClass (XCOFF::StorageClass SC)
XCOFF::StorageClass getStorageClass () const
StringRef getUnqualifiedName () const
MCSectionXCOFFgetRepresentedCsect () const
void setRepresentedCsect (MCSectionXCOFF *C)
void setVisibilityType (XCOFF::VisibilityType SVT)
XCOFF::VisibilityType getVisibilityType () const
bool hasRename () const
void setSymbolTableName (StringRef STN)
StringRef getSymbolTableName () const
bool isEHInfo () const
void setEHInfo () const
bool hasPerSymbolCodeModel () const
CodeModel getPerSymbolCodeModel () const
void setPerSymbolCodeModel (MCSymbolXCOFF::CodeModel Model)
- Public Member Functions inherited from llvm::MCSymbol
 MCSymbol (const MCSymbol &)=delete
MCSymboloperator= (const MCSymbol &)=delete
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.
bool isUnset () const
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, bool Target=false)
 Mark this symbol as being 'common'.
MaybeAlign getCommonAlignment () const
 Return the alignment of a 'common' symbol.
bool declareCommon (uint64_t Size, Align Alignment, bool Target=false)
 Declare this symbol as being 'common'.
bool isCommon () const
 Is this a 'common' symbol.
bool isTargetCommon () const
 Is this a target-specific common-like symbol.
MCFragmentgetFragment (bool SetUsed=true) const
bool isExternal () const
void setExternal (bool Value) const
bool isPrivateExtern () const
void setPrivateExtern (bool Value)
bool isWeakExternal () const
void print (raw_ostream &OS, const MCAsmInfo *MAI) const
 print - Print the value to the stream OS.
void dump () const
 dump - Print the value to stderr.
bool isTemporary () const
 isTemporary - Check if this is an assembler temporary symbol.
bool isUsed () const
 isUsed - Check if this is used.
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 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 (bool SetUsed=true) 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.
void setUndefined ()
 Mark the symbol as undefined.
bool isELF () const
bool isCOFF () const
bool isGOFF () const
bool isMachO () const
bool isWasm () const
bool isXCOFF () const
bool isVariable () const
 isVariable - Check if this is a variable symbol.
const MCExprgetVariableValue (bool SetUsed=true) const
 getVariableValue - Get the value for variable symbols.
void setVariableValue (const MCExpr *Value)

Static Public Member Functions

static bool classof (const MCSymbol *S)
static StringRef getUnqualifiedName (StringRef Name)

Additional Inherited Members

- Protected Types inherited from llvm::MCSymbol
enum  SymbolKind {
  SymbolKindUnset , SymbolKindCOFF , SymbolKindELF , SymbolKindGOFF ,
  SymbolKindMachO , SymbolKindWasm , SymbolKindXCOFF
 The kind of the symbol. More...
enum  Contents : uint8_t {
  SymContentsUnset , SymContentsOffset , SymContentsVariable , SymContentsCommon ,
 A symbol can contain an Offset, or Value, or be Common, but never more than one of these. More...
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 StringMapEntry< bool > *NameEntry
 The name for a symbol.
- Protected Member Functions inherited from llvm::MCSymbol
 MCSymbol (SymbolKind Kind, const StringMapEntry< bool > *Name, bool isTemporary)
void * operator new (size_t s, const StringMapEntry< bool > *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 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 IsUsed: 1
 IsUsed - True if this symbol has been used.
unsigned IsRegistered: 1
unsigned IsExternal: 1
 True if this symbol is visible outside this translation unit.
unsigned IsPrivateExtern: 1
 This symbol is private extern.
unsigned IsWeakExternal: 1
 This symbol is weak external.
unsigned Kind: 3
 LLVM RTTI discriminator.
unsigned IsUsedInReloc: 1
 True if we have created a relocation that uses this symbol.
unsigned SymbolContents: 3
 This is actually a Contents enumerator, but is unsigned to avoid sign extension and achieve better bitpacking with MSVC.
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 MCFragmentAbsolutePseudoFragment = &SentinelFragment

Detailed Description

Definition at line 19 of file MCSymbolXCOFF.h.

Member Enumeration Documentation

◆ CodeModel


Definition at line 29 of file MCSymbolXCOFF.h.

Constructor & Destructor Documentation

◆ MCSymbolXCOFF()

llvm::MCSymbolXCOFF::MCSymbolXCOFF ( const StringMapEntry< bool > *  Name,
bool  isTemporary 

Definition at line 24 of file MCSymbolXCOFF.h.

Member Function Documentation

◆ classof()

static bool llvm::MCSymbolXCOFF::classof ( const MCSymbol S)

Definition at line 27 of file MCSymbolXCOFF.h.

References llvm::MCSymbol::isXCOFF().

◆ getPerSymbolCodeModel()

CodeModel llvm::MCSymbolXCOFF::getPerSymbolCodeModel ( ) const

◆ getRepresentedCsect()

MCSectionXCOFF * MCSymbolXCOFF::getRepresentedCsect ( ) const

◆ getStorageClass()

XCOFF::StorageClass llvm::MCSymbolXCOFF::getStorageClass ( ) const

Definition at line 45 of file MCSymbolXCOFF.h.

References assert().

◆ getSymbolTableName()

StringRef llvm::MCSymbolXCOFF::getSymbolTableName ( ) const

◆ getUnqualifiedName() [1/2]

StringRef llvm::MCSymbolXCOFF::getUnqualifiedName ( ) const

Definition at line 50 of file MCSymbolXCOFF.h.

References llvm::MCSymbol::getName(), and getUnqualifiedName().

Referenced by getSymbolTableName(), and getUnqualifiedName().

◆ getUnqualifiedName() [2/2]

static StringRef llvm::MCSymbolXCOFF::getUnqualifiedName ( StringRef  Name)

Definition at line 31 of file MCSymbolXCOFF.h.

References assert(), llvm::StringRef::empty(), and Name.

Referenced by llvm::MCContext::getXCOFFSection().

◆ getVisibilityType()

XCOFF::VisibilityType llvm::MCSymbolXCOFF::getVisibilityType ( ) const

Definition at line 58 of file MCSymbolXCOFF.h.

◆ hasPerSymbolCodeModel()

bool llvm::MCSymbolXCOFF::hasPerSymbolCodeModel ( ) const

◆ hasRename()

bool llvm::MCSymbolXCOFF::hasRename ( ) const

Definition at line 60 of file MCSymbolXCOFF.h.

Referenced by llvm::AsmPrinter::doInitialization(), and getSymbolTableName().

◆ isEHInfo()

bool llvm::MCSymbolXCOFF::isEHInfo ( ) const

◆ setEHInfo()

void llvm::MCSymbolXCOFF::setEHInfo ( ) const

Definition at line 75 of file MCSymbolXCOFF.h.

References llvm::MCSymbol::modifyFlags().

◆ setPerSymbolCodeModel()

void llvm::MCSymbolXCOFF::setPerSymbolCodeModel ( MCSymbolXCOFF::CodeModel  Model)

Definition at line 85 of file MCSymbolXCOFF.h.

Referenced by setOptionalCodeModel().

◆ setRepresentedCsect()

void MCSymbolXCOFF::setRepresentedCsect ( MCSectionXCOFF C)

Definition at line 22 of file MCSymbolXCOFF.cpp.

References assert(), llvm::CallingConv::C, and getSymbolTableName().

◆ setStorageClass()

void llvm::MCSymbolXCOFF::setStorageClass ( XCOFF::StorageClass  SC)

Definition at line 41 of file MCSymbolXCOFF.h.

◆ setSymbolTableName()

void llvm::MCSymbolXCOFF::setSymbolTableName ( StringRef  STN)

Definition at line 62 of file MCSymbolXCOFF.h.

◆ setVisibilityType()

void llvm::MCSymbolXCOFF::setVisibilityType ( XCOFF::VisibilityType  SVT)

Definition at line 56 of file MCSymbolXCOFF.h.

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