diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-29 18:47:23 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-29 18:47:23 +0000 |
commit | e3b2acf2743f957bf084e7d4bbcf61c8f21817ea (patch) | |
tree | 130e25b196dbd5aa6e1e454cf7719087080d427c /llvm/lib/MC/MCELFStreamer.cpp | |
parent | 223dd95f248f37a27ab5e720dbb21fc5997117f1 (diff) | |
download | bcm5719-llvm-e3b2acf2743f957bf084e7d4bbcf61c8f21817ea.tar.gz bcm5719-llvm-e3b2acf2743f957bf084e7d4bbcf61c8f21817ea.zip |
Pass MCSymbols to the helper functions in MCELF.h.
llvm-svn: 238596
Diffstat (limited to 'llvm/lib/MC/MCELFStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCELFStreamer.cpp | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp index 8224d635062..7fb51ae4868 100644 --- a/llvm/lib/MC/MCELFStreamer.cpp +++ b/llvm/lib/MC/MCELFStreamer.cpp @@ -113,9 +113,8 @@ void MCELFStreamer::EmitLabel(MCSymbol *Symbol) { const MCSectionELF &Section = static_cast<const MCSectionELF&>(Symbol->getSection()); - MCSymbolData &SD = Symbol->getData(); if (Section.getFlags() & ELF::SHF_TLS) - MCELF::SetType(SD, ELF::STT_TLS); + MCELF::SetType(*Symbol, ELF::STT_TLS); } void MCELFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) { @@ -165,8 +164,10 @@ void MCELFStreamer::ChangeSection(MCSection *Section, Begin = Ctx.getOrCreateSectionSymbol(*SectionELF); Section->setBeginSymbol(Begin); } - if (Begin->isUndefined()) - MCELF::SetType(Asm.getOrCreateSymbolData(*Begin), ELF::STT_SECTION); + if (Begin->isUndefined()) { + Asm.getOrCreateSymbolData(*Begin); + MCELF::SetType(*Begin, ELF::STT_SECTION); + } } void MCELFStreamer::EmitWeakReference(MCSymbol *Alias, const MCSymbol *Symbol) { @@ -236,72 +237,73 @@ bool MCELFStreamer::EmitSymbolAttribute(MCSymbol *Symbol, break; case MCSA_ELF_TypeGnuUniqueObject: - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), ELF::STT_OBJECT)); - MCELF::SetBinding(SD, ELF::STB_GNU_UNIQUE); + MCELF::SetType( + *Symbol, CombineSymbolTypes(MCELF::GetType(*Symbol), ELF::STT_OBJECT)); + MCELF::SetBinding(*Symbol, ELF::STB_GNU_UNIQUE); SD.setExternal(true); BindingExplicitlySet.insert(Symbol); break; case MCSA_Global: - MCELF::SetBinding(SD, ELF::STB_GLOBAL); + MCELF::SetBinding(*Symbol, ELF::STB_GLOBAL); SD.setExternal(true); BindingExplicitlySet.insert(Symbol); break; case MCSA_WeakReference: case MCSA_Weak: - MCELF::SetBinding(SD, ELF::STB_WEAK); + MCELF::SetBinding(*Symbol, ELF::STB_WEAK); SD.setExternal(true); BindingExplicitlySet.insert(Symbol); break; case MCSA_Local: - MCELF::SetBinding(SD, ELF::STB_LOCAL); + MCELF::SetBinding(*Symbol, ELF::STB_LOCAL); SD.setExternal(false); BindingExplicitlySet.insert(Symbol); break; case MCSA_ELF_TypeFunction: - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), - ELF::STT_FUNC)); + MCELF::SetType(*Symbol, + CombineSymbolTypes(MCELF::GetType(*Symbol), ELF::STT_FUNC)); break; case MCSA_ELF_TypeIndFunction: - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), - ELF::STT_GNU_IFUNC)); + MCELF::SetType(*Symbol, CombineSymbolTypes(MCELF::GetType(*Symbol), + ELF::STT_GNU_IFUNC)); break; case MCSA_ELF_TypeObject: - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), - ELF::STT_OBJECT)); + MCELF::SetType( + *Symbol, CombineSymbolTypes(MCELF::GetType(*Symbol), ELF::STT_OBJECT)); break; case MCSA_ELF_TypeTLS: - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), - ELF::STT_TLS)); + MCELF::SetType(*Symbol, + CombineSymbolTypes(MCELF::GetType(*Symbol), ELF::STT_TLS)); break; case MCSA_ELF_TypeCommon: // TODO: Emit these as a common symbol. - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), - ELF::STT_OBJECT)); + MCELF::SetType( + *Symbol, CombineSymbolTypes(MCELF::GetType(*Symbol), ELF::STT_OBJECT)); break; case MCSA_ELF_TypeNoType: - MCELF::SetType(SD, CombineSymbolTypes(MCELF::GetType(SD), - ELF::STT_NOTYPE)); + MCELF::SetType( + *Symbol, CombineSymbolTypes(MCELF::GetType(*Symbol), ELF::STT_NOTYPE)); break; case MCSA_Protected: - MCELF::SetVisibility(SD, ELF::STV_PROTECTED); + MCELF::SetVisibility(*Symbol, ELF::STV_PROTECTED); break; case MCSA_Hidden: - MCELF::SetVisibility(SD, ELF::STV_HIDDEN); + MCELF::SetVisibility(*Symbol, ELF::STV_HIDDEN); break; case MCSA_Internal: - MCELF::SetVisibility(SD, ELF::STV_INTERNAL); + MCELF::SetVisibility(*Symbol, ELF::STV_INTERNAL); break; } @@ -313,13 +315,13 @@ void MCELFStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, MCSymbolData &SD = getAssembler().getOrCreateSymbolData(*Symbol); if (!BindingExplicitlySet.count(Symbol)) { - MCELF::SetBinding(SD, ELF::STB_GLOBAL); + MCELF::SetBinding(*Symbol, ELF::STB_GLOBAL); SD.setExternal(true); } - MCELF::SetType(SD, ELF::STT_OBJECT); + MCELF::SetType(*Symbol, ELF::STT_OBJECT); - if (MCELF::GetBinding(SD) == ELF_STB_Local) { + if (MCELF::GetBinding(*Symbol) == ELF_STB_Local) { MCSection *Section = getAssembler().getContext().getELFSection( ".bss", ELF::SHT_NOBITS, ELF::SHF_WRITE | ELF::SHF_ALLOC); @@ -342,7 +344,7 @@ void MCELFStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) { // FIXME: Should this be caught and done earlier? MCSymbolData &SD = getAssembler().getOrCreateSymbolData(*Symbol); - MCELF::SetBinding(SD, ELF::STB_LOCAL); + MCELF::SetBinding(*Symbol, ELF::STB_LOCAL); SD.setExternal(false); BindingExplicitlySet.insert(Symbol); EmitCommonSymbol(Symbol, Size, ByteAlignment); @@ -458,8 +460,8 @@ void MCELFStreamer::fixSymbolsInTLSFixups(const MCExpr *expr) { case MCSymbolRefExpr::VK_PPC_TLSLD: break; } - MCSymbolData &SD = getAssembler().getOrCreateSymbolData(symRef.getSymbol()); - MCELF::SetType(SD, ELF::STT_TLS); + getAssembler().getOrCreateSymbolData(symRef.getSymbol()); + MCELF::SetType(symRef.getSymbol(), ELF::STT_TLS); break; } |