Remove the MCSymbolData typedef.

The getData member function is next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238611 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2015-05-29 20:41:47 +00:00
parent 63e7baf8f6
commit 5760c5fe31
19 changed files with 50 additions and 52 deletions

View File

@ -16,7 +16,7 @@
#include "llvm/Support/ELF.h"
// Because all the symbol flags need to be stored in the MCSymbolData
// Because all the symbol flags need to be stored in the MCSymbol
// 'flags' variable we need to provide shift constants per flag type.
namespace llvm {

View File

@ -283,8 +283,6 @@ public:
void dump() const;
};
typedef MCSymbol MCSymbolData;
inline raw_ostream &operator<<(raw_ostream &OS, const MCSymbol &Sym) {
Sym.print(OS);
return OS;

View File

@ -359,7 +359,7 @@ void ELFObjectWriter::writeHeader(const MCAssembler &Asm) {
uint64_t ELFObjectWriter::SymbolValue(const MCSymbol &Sym,
const MCAsmLayout &Layout) {
MCSymbolData &Data = Sym.getData();
MCSymbol &Data = Sym.getData();
if (Sym.isCommon() && Data.isExternal())
return Sym.getCommonAlignment();
@ -379,7 +379,7 @@ void ELFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm,
// versions declared with @@@ to be renamed.
for (const MCSymbol &Alias : Asm.symbols()) {
MCSymbolData &OriginalData = Alias.getData();
MCSymbol &OriginalData = Alias.getData();
// Not an alias.
if (!Alias.isVariable())
@ -388,7 +388,7 @@ void ELFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm,
if (!Ref)
continue;
const MCSymbol &Symbol = Ref->getSymbol();
MCSymbolData &SD = Symbol.getData();
MCSymbol &SD = Symbol.getData();
StringRef AliasName = Alias.getName();
size_t Pos = AliasName.find('@');
@ -452,7 +452,7 @@ void ELFObjectWriter::writeSymbol(SymbolTableWriter &Writer,
uint32_t StringIndex, ELFSymbolData &MSD,
const MCAsmLayout &Layout) {
#ifndef NDEBUG
MCSymbolData &OrigData = MSD.Symbol->getData();
MCSymbol &OrigData = MSD.Symbol->getData();
assert((!OrigData.getFragment() ||
(OrigData.getFragment()->getParent() == &MSD.Symbol->getSection())) &&
"The symbol's section doesn't match the fragment's symbol");
@ -466,7 +466,7 @@ void ELFObjectWriter::writeSymbol(SymbolTableWriter &Writer,
// Binding and Type share the same byte as upper and lower nibbles
uint8_t Binding = MCELF::GetBinding(*MSD.Symbol);
uint8_t Type = MCELF::GetType(*MSD.Symbol);
MCSymbolData *BaseSD = nullptr;
MCSymbol *BaseSD = nullptr;
if (Base) {
BaseSD = &Base->getData();
Type = mergeTypeForSet(Type, MCELF::GetType(*Base));
@ -769,7 +769,7 @@ bool ELFObjectWriter::isInSymtab(const MCAsmLayout &Layout,
bool ELFObjectWriter::isLocal(const MCSymbol &Symbol, bool IsUsedInReloc,
bool IsSignature) {
const MCSymbolData &Data = Symbol.getData();
const MCSymbol &Data = Symbol.getData();
if (Data.isExternal())
return false;

View File

@ -120,7 +120,7 @@ uint64_t MCAsmLayout::getFragmentOffset(const MCFragment *F) const {
// Simple getSymbolOffset helper for the non-varibale case.
static bool getLabelOffset(const MCAsmLayout &Layout, const MCSymbol &S,
bool ReportError, uint64_t &Val) {
const MCSymbolData &SD = S.getData();
const MCSymbol &SD = S.getData();
if (!SD.getFragment()) {
if (ReportError)
report_fatal_error("unable to evaluate offset to undefined symbol '" +

View File

@ -214,7 +214,7 @@ bool MCELFStreamer::EmitSymbolAttribute(MCSymbol *Symbol,
// important side effect of calling registerSymbol here is to register
// the symbol with the assembler.
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
// The implementation of symbol attributes is designed to match 'as', but it
// leaves much to desired. It doesn't really make sense to arbitrarily add and
@ -314,7 +314,7 @@ bool MCELFStreamer::EmitSymbolAttribute(MCSymbol *Symbol,
void MCELFStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
unsigned ByteAlignment) {
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
if (!BindingExplicitlySet.count(Symbol)) {
MCELF::SetBinding(*Symbol, ELF::STB_GLOBAL);
@ -346,7 +346,7 @@ void MCELFStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
unsigned ByteAlignment) {
// FIXME: Should this be caught and done earlier?
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
MCELF::SetBinding(*Symbol, ELF::STB_LOCAL);
SD.setExternal(false);
BindingExplicitlySet.insert(Symbol);

View File

@ -471,8 +471,8 @@ static void AttemptToFoldSymbolOffsetDifference(
if (!Asm->getWriter().IsSymbolRefDifferenceFullyResolved(*Asm, A, B, InSet))
return;
const MCSymbolData &AD = SA.getData();
const MCSymbolData &BD = SB.getData();
const MCSymbol &AD = SA.getData();
const MCSymbol &BD = SB.getData();
if (AD.getFragment() == BD.getFragment()) {
Addend += (SA.getOffset() - SB.getOffset());

View File

@ -173,7 +173,7 @@ void MCMachOStreamer::ChangeSection(MCSection *Section,
void MCMachOStreamer::EmitEHSymAttributes(const MCSymbol *Symbol,
MCSymbol *EHSymbol) {
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
if (SD.isExternal())
EmitSymbolAttribute(EHSymbol, MCSA_Global);
if (Symbol->getFlags() & SF_WeakDefinition)
@ -296,7 +296,7 @@ bool MCMachOStreamer::EmitSymbolAttribute(MCSymbol *Symbol,
// important side effect of calling registerSymbol here is to register
// the symbol with the assembler.
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
// The implementation of symbol attributes is designed to match 'as', but it
// leaves much to desired. It doesn't really make sense to arbitrarily add and
@ -391,7 +391,7 @@ void MCMachOStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
AssignSection(Symbol, nullptr);
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
SD.setExternal(true);
Symbol->setCommon(Size, ByteAlignment);
}
@ -417,7 +417,7 @@ void MCMachOStreamer::EmitZerofill(MCSection *Section, MCSymbol *Symbol,
assert(Symbol->isUndefined() && "Cannot define a symbol twice!");
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
// Emit an align fragment if necessary.
if (ByteAlignment != 1)
@ -469,7 +469,7 @@ void MCMachOStreamer::FinishImpl() {
// defining symbols.
DenseMap<const MCFragment *, const MCSymbol *> DefiningSymbolMap;
for (const MCSymbol &Symbol : getAssembler().symbols()) {
MCSymbolData &SD = Symbol.getData();
MCSymbol &SD = Symbol.getData();
if (getAssembler().isSymbolLinkerVisible(Symbol) && SD.getFragment()) {
// An atom defining symbol should never be internal to a fragment.
assert(Symbol.getOffset() == 0 &&

View File

@ -47,7 +47,7 @@ void MCObjectStreamer::flushPendingLabels(MCFragment *F, uint64_t FOffset) {
F->setParent(CurSection);
}
for (MCSymbol *Sym : PendingLabels) {
MCSymbolData *SD = &Sym->getData();
MCSymbol *SD = &Sym->getData();
SD->setFragment(F);
Sym->setOffset(FOffset);
}
@ -164,7 +164,7 @@ void MCObjectStreamer::EmitLabel(MCSymbol *Symbol) {
MCStreamer::EmitLabel(Symbol);
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
assert(!SD.getFragment() && "Unexpected fragment on symbol data!");
// If there is a current fragment, mark the symbol as pointing into it.

View File

@ -30,8 +30,8 @@ bool MCObjectWriter::IsSymbolRefDifferenceFullyResolved(
if (SA.isUndefined() || SB.isUndefined())
return false;
const MCSymbolData &DataA = SA.getData();
const MCSymbolData &DataB = SB.getData();
const MCSymbol &DataA = SA.getData();
const MCSymbol &DataB = SB.getData();
if(!DataA.getFragment() || !DataB.getFragment())
return false;

View File

@ -329,7 +329,7 @@ const MCSymbol &MachObjectWriter::findAliasedSymbol(const MCSymbol &Sym) const {
void MachObjectWriter::WriteNlist(MachSymbolData &MSD,
const MCAsmLayout &Layout) {
const MCSymbol *Symbol = MSD.Symbol;
MCSymbolData &Data = Symbol->getData();
MCSymbol &Data = Symbol->getData();
const MCSymbol *AliasedSymbol = &findAliasedSymbol(*Symbol);
uint8_t SectionIndex = MSD.SectionIndex;
uint8_t Type = 0;
@ -554,7 +554,7 @@ void MachObjectWriter::ComputeSymbolTable(
// match 'as'. Even though it doesn't matter for correctness, this is
// important for letting us diff .o files.
for (const MCSymbol &Symbol : Asm.symbols()) {
MCSymbolData &SD = Symbol.getData();
MCSymbol &SD = Symbol.getData();
// Ignore non-linker visible symbols.
if (!Asm.isSymbolLinkerVisible(Symbol))
@ -582,7 +582,7 @@ void MachObjectWriter::ComputeSymbolTable(
// Now add the data for local symbols.
for (const MCSymbol &Symbol : Asm.symbols()) {
MCSymbolData &SD = Symbol.getData();
MCSymbol &SD = Symbol.getData();
// Ignore non-linker visible symbols.
if (!Asm.isSymbolLinkerVisible(Symbol))

View File

@ -364,7 +364,7 @@ void WinCOFFObjectWriter::defineSection(MCSectionCOFF const &Sec) {
static uint64_t getSymbolValue(const MCSymbol &Symbol,
const MCAsmLayout &Layout) {
const MCSymbolData &Data = Symbol.getData();
const MCSymbol &Data = Symbol.getData();
if (Symbol.isCommon() && Data.isExternal())
return Symbol.getCommonSize();
@ -414,7 +414,7 @@ void WinCOFFObjectWriter::DefineSymbol(const MCSymbol &Symbol,
coff_symbol->MC = &Symbol;
} else {
const MCSymbolData &ResSymData = Symbol.getData();
const MCSymbol &ResSymData = Symbol.getData();
const MCSymbol *Base = Layout.getBaseSymbol(Symbol);
coff_symbol->Data.Value = getSymbolValue(Symbol, Layout);
@ -434,7 +434,7 @@ void WinCOFFObjectWriter::DefineSymbol(const MCSymbol &Symbol,
if (!Base) {
coff_symbol->Data.SectionNumber = COFF::IMAGE_SYM_ABSOLUTE;
} else {
const MCSymbolData &BaseData = Base->getData();
const MCSymbol &BaseData = Base->getData();
if (BaseData.getFragment()) {
COFFSection *Sec = SectionMap[BaseData.getFragment()->getParent()];
@ -672,7 +672,7 @@ bool WinCOFFObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(
}
bool WinCOFFObjectWriter::isWeak(const MCSymbol &Sym) const {
const MCSymbolData &SD = Sym.getData();
const MCSymbol &SD = Sym.getData();
if (!SD.isExternal())
return false;
@ -701,7 +701,7 @@ void WinCOFFObjectWriter::RecordRelocation(
Twine("symbol '") + A.getName() +
"' can not be undefined");
const MCSymbolData &A_SD = A.getData();
const MCSymbol &A_SD = A.getData();
MCSection *Section = Fragment->getParent();
@ -718,7 +718,7 @@ void WinCOFFObjectWriter::RecordRelocation(
if (SymB) {
const MCSymbol *B = &SymB->getSymbol();
const MCSymbolData &B_SD = B->getData();
const MCSymbol &B_SD = B->getData();
if (!B_SD.getFragment())
Asm.getContext().reportFatalError(
Fixup.getLoc(),

View File

@ -97,7 +97,7 @@ bool MCWinCOFFStreamer::EmitSymbolAttribute(MCSymbol *Symbol,
"Got non-COFF section in the COFF backend!");
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
switch (Attribute) {
default: return false;
@ -197,7 +197,7 @@ void MCWinCOFFStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
AssignSection(Symbol, nullptr);
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
SD.setExternal(true);
Symbol->setCommon(Size, ByteAlignment);
@ -227,7 +227,7 @@ void MCWinCOFFStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
Section->setAlignment(ByteAlignment);
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
SD.setExternal(false);
AssignSection(Symbol, Section);

View File

@ -165,7 +165,7 @@ private:
Name + "." + Twine(MappingSymbolCounter++));
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
MCELF::SetType(*Symbol, ELF::STT_NOTYPE);
MCELF::SetBinding(*Symbol, ELF::STB_LOCAL);
SD.setExternal(false);

View File

@ -209,11 +209,11 @@ void AArch64MachObjectWriter::RecordRelocation(
}
} else if (Target.getSymB()) { // A - B + constant
const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData &A_SD = A->getData();
const MCSymbol &A_SD = A->getData();
const MCSymbol *A_Base = Asm.getAtom(*A);
const MCSymbol *B = &Target.getSymB()->getSymbol();
const MCSymbolData &B_SD = B->getData();
const MCSymbol &B_SD = B->getData();
const MCSymbol *B_Base = Asm.getAtom(*B);
// Check for "_foo@got - .", which comes through here as:

View File

@ -601,7 +601,7 @@ void ARMAsmBackend::processFixupValue(const MCAssembler &Asm,
// the offset when the destination has the same MCFragment.
if (A && (unsigned)Fixup.getKind() == ARM::fixup_arm_thumb_bl) {
const MCSymbol &Sym = A->getSymbol();
const MCSymbolData &SymData = Sym.getData();
const MCSymbol &SymData = Sym.getData();
IsResolved = (SymData.getFragment() == DF);
}
// We must always generate a relocation for BL/BLX instructions if we have

View File

@ -567,7 +567,7 @@ private:
Twine(MappingSymbolCounter++));
getAssembler().registerSymbol(*Symbol);
MCSymbolData &SD = Symbol->getData();
MCSymbol &SD = Symbol->getData();
MCELF::SetType(*Symbol, ELF::STT_NOTYPE);
MCELF::SetBinding(*Symbol, ELF::STB_LOCAL);
SD.setExternal(false);

View File

@ -152,7 +152,7 @@ RecordARMScatteredHalfRelocation(MachObjectWriter *Writer,
// See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &A->getData();
const MCSymbol *A_SD = &A->getData();
if (!A_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(),
@ -166,7 +166,7 @@ RecordARMScatteredHalfRelocation(MachObjectWriter *Writer,
FixedValue += SecAddr;
if (const MCSymbolRefExpr *B = Target.getSymB()) {
const MCSymbolData *B_SD = &B->getSymbol().getData();
const MCSymbol *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(),
@ -255,7 +255,7 @@ void ARMMachObjectWriter::RecordARMScatteredRelocation(MachObjectWriter *Writer,
// See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &A->getData();
const MCSymbol *A_SD = &A->getData();
if (!A_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(),
@ -270,7 +270,7 @@ void ARMMachObjectWriter::RecordARMScatteredRelocation(MachObjectWriter *Writer,
if (const MCSymbolRefExpr *B = Target.getSymB()) {
assert(Type == MachO::ARM_RELOC_VANILLA && "invalid reloc for 2 symbols");
const MCSymbolData *B_SD = &B->getSymbol().getData();
const MCSymbol *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment())
Asm.getContext().reportFatalError(Fixup.getLoc(),

View File

@ -206,7 +206,7 @@ bool PPCMachObjectWriter::RecordScatteredRelocation(
// See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &A->getData();
const MCSymbol *A_SD = &A->getData();
if (!A_SD->getFragment())
report_fatal_error("symbol '" + A->getName() +
@ -219,7 +219,7 @@ bool PPCMachObjectWriter::RecordScatteredRelocation(
uint32_t Value2 = 0;
if (const MCSymbolRefExpr *B = Target.getSymB()) {
const MCSymbolData *B_SD = &B->getSymbol().getData();
const MCSymbol *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment())
report_fatal_error("symbol '" + B->getSymbol().getName() +

View File

@ -142,13 +142,13 @@ void X86MachObjectWriter::RecordX86_64Relocation(
const MCSymbol *A = &Target.getSymA()->getSymbol();
if (A->isTemporary())
A = &Writer->findAliasedSymbol(*A);
const MCSymbolData &A_SD = A->getData();
const MCSymbol &A_SD = A->getData();
const MCSymbol *A_Base = Asm.getAtom(*A);
const MCSymbol *B = &Target.getSymB()->getSymbol();
if (B->isTemporary())
B = &Writer->findAliasedSymbol(*B);
const MCSymbolData &B_SD = B->getData();
const MCSymbol &B_SD = B->getData();
const MCSymbol *B_Base = Asm.getAtom(*B);
// Neither symbol can be modified.
@ -211,7 +211,7 @@ void X86MachObjectWriter::RecordX86_64Relocation(
if (!Asm.getContext().getAsmInfo()->isSectionAtomizableBySymbols(Sec))
Asm.addLocalUsedInReloc(*Symbol);
}
const MCSymbolData &SD = Symbol->getData();
const MCSymbol &SD = Symbol->getData();
RelSymbol = Asm.getAtom(*Symbol);
// Relocations inside debug sections always use local relocations when
@ -354,7 +354,7 @@ bool X86MachObjectWriter::RecordScatteredRelocation(MachObjectWriter *Writer,
// See <reloc.h>.
const MCSymbol *A = &Target.getSymA()->getSymbol();
const MCSymbolData *A_SD = &A->getData();
const MCSymbol *A_SD = &A->getData();
if (!A_SD->getFragment())
report_fatal_error("symbol '" + A->getName() +
@ -368,7 +368,7 @@ bool X86MachObjectWriter::RecordScatteredRelocation(MachObjectWriter *Writer,
uint32_t Value2 = 0;
if (const MCSymbolRefExpr *B = Target.getSymB()) {
const MCSymbolData *B_SD = &B->getSymbol().getData();
const MCSymbol *B_SD = &B->getSymbol().getData();
if (!B_SD->getFragment())
report_fatal_error("symbol '" + B->getSymbol().getName() +