class MCSymbolRefExpr

Declaration

class MCSymbolRefExpr : public MCExpr { /* full declaration omitted */ };

Description

Represent a reference to a symbol from inside an expression. A symbol reference in an expression may be a use of a label, a use of an assembler variable (defined constant), or constitute an implicit definition of the symbol as external.

Declared at: llvm/include/llvm/MC/MCExpr.h:192

Inherits from: MCExpr

Member Variables

private const llvm::MCSymbol* Symbol
The symbol being referenced.
private static const unsigned int VariantKindBits = 16
private static const unsigned int VariantKindMask = (1 << VariantKindBits) - 1
private static const unsigned int HasSubsectionsViaSymbolsBit = 1 << VariantKindBits

Method Overview

  • private MCSymbolRefExpr(const llvm::MCSymbol * Symbol, llvm::MCSymbolRefExpr::VariantKind Kind, const llvm::MCAsmInfo * MAI, llvm::SMLoc Loc = llvm::SMLoc())
  • public static bool classof(const llvm::MCExpr * E)
  • public static const llvm::MCSymbolRefExpr * create(const llvm::MCSymbol * Symbol, llvm::MCContext & Ctx)
  • public static const llvm::MCSymbolRefExpr * create(const llvm::MCSymbol * Symbol, llvm::MCSymbolRefExpr::VariantKind Kind, llvm::MCContext & Ctx, llvm::SMLoc Loc = llvm::SMLoc())
  • public static const llvm::MCSymbolRefExpr * create(llvm::StringRef Name, llvm::MCSymbolRefExpr::VariantKind Kind, llvm::MCContext & Ctx)
  • private static unsigned int encodeSubclassData(llvm::MCSymbolRefExpr::VariantKind Kind, bool HasSubsectionsViaSymbols)
  • public llvm::MCSymbolRefExpr::VariantKind getKind() const
  • public const llvm::MCSymbol & getSymbol() const
  • public static llvm::MCSymbolRefExpr::VariantKind getVariantKindForName(llvm::StringRef Name)
  • public static llvm::StringRef getVariantKindName(llvm::MCSymbolRefExpr::VariantKind Kind)
  • public bool hasSubsectionsViaSymbols() const

Inherited from MCExpr:

Methods

MCSymbolRefExpr(
    const llvm::MCSymbol* Symbol,
    llvm::MCSymbolRefExpr::VariantKind Kind,
    const llvm::MCAsmInfo* MAI,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCExpr.h:379

Parameters

const llvm::MCSymbol* Symbol
llvm::MCSymbolRefExpr::VariantKind Kind
const llvm::MCAsmInfo* MAI
llvm::SMLoc Loc = llvm::SMLoc()

static bool classof(const llvm::MCExpr* E)

Description

@ }

Declared at: llvm/include/llvm/MC/MCExpr.h:419

Parameters

const llvm::MCExpr* E

static const llvm::MCSymbolRefExpr* create(
    const llvm::MCSymbol* Symbol,
    llvm::MCContext& Ctx)

Description

@ {

Declared at: llvm/include/llvm/MC/MCExpr.h:386

Parameters

const llvm::MCSymbol* Symbol
llvm::MCContext& Ctx

static const llvm::MCSymbolRefExpr* create(
    const llvm::MCSymbol* Symbol,
    llvm::MCSymbolRefExpr::VariantKind Kind,
    llvm::MCContext& Ctx,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCExpr.h:390

Parameters

const llvm::MCSymbol* Symbol
llvm::MCSymbolRefExpr::VariantKind Kind
llvm::MCContext& Ctx
llvm::SMLoc Loc = llvm::SMLoc()

static const llvm::MCSymbolRefExpr* create(
    llvm::StringRef Name,
    llvm::MCSymbolRefExpr::VariantKind Kind,
    llvm::MCContext& Ctx)

Declared at: llvm/include/llvm/MC/MCExpr.h:392

Parameters

llvm::StringRef Name
llvm::MCSymbolRefExpr::VariantKind Kind
llvm::MCContext& Ctx

static unsigned int encodeSubclassData(
    llvm::MCSymbolRefExpr::VariantKind Kind,
    bool HasSubsectionsViaSymbols)

Declared at: llvm/include/llvm/MC/MCExpr.h:373

Parameters

llvm::MCSymbolRefExpr::VariantKind Kind
bool HasSubsectionsViaSymbols

llvm::MCSymbolRefExpr::VariantKind getKind() const

Declared at: llvm/include/llvm/MC/MCExpr.h:401

const llvm::MCSymbol& getSymbol() const

Description

@ } @ {

Declared at: llvm/include/llvm/MC/MCExpr.h:399

static llvm::MCSymbolRefExpr::VariantKind
getVariantKindForName(llvm::StringRef Name)

Declared at: llvm/include/llvm/MC/MCExpr.h:415

Parameters

llvm::StringRef Name

static llvm::StringRef getVariantKindName(
    llvm::MCSymbolRefExpr::VariantKind Kind)

Description

@ } @ {

Declared at: llvm/include/llvm/MC/MCExpr.h:413

Parameters

llvm::MCSymbolRefExpr::VariantKind Kind

bool hasSubsectionsViaSymbols() const

Declared at: llvm/include/llvm/MC/MCExpr.h:405