From: Duncan P. N. Exon Smith Date: Wed, 20 May 2015 15:10:03 +0000 (+0000) Subject: MC: Use MCSymbol in MCObjectWriter::isWeak(), NFC X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f5bdf04f0963a12ce6d29e1519b8494868738f66;p=oota-llvm.git MC: Use MCSymbol in MCObjectWriter::isWeak(), NFC Continue to prefer `MCSymbol` when we need both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237798 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCObjectWriter.h b/include/llvm/MC/MCObjectWriter.h index 6113208865a..999d2947127 100644 --- a/include/llvm/MC/MCObjectWriter.h +++ b/include/llvm/MC/MCObjectWriter.h @@ -101,7 +101,7 @@ public: /// \brief True if this symbol (which is a variable) is weak. This is not /// just STB_WEAK, but more generally whether or not we can evaluate /// past it. - virtual bool isWeak(const MCSymbolData &SD) const; + virtual bool isWeak(const MCSymbol &Sym) const; /// \brief Write the object file. /// diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index 30aa1bdd045..c36da56f0ce 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -250,7 +250,7 @@ class ELFObjectWriter : public MCObjectWriter { bool InSet, bool IsPCRel) const override; - bool isWeak(const MCSymbolData &SD) const override; + bool isWeak(const MCSymbol &Sym) const override; void WriteObject(MCAssembler &Asm, const MCAsmLayout &Layout) override; void writeSection(MCAssembler &Asm, @@ -1478,7 +1478,8 @@ bool ELFObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl( InSet, IsPCRel); } -bool ELFObjectWriter::isWeak(const MCSymbolData &SD) const { +bool ELFObjectWriter::isWeak(const MCSymbol &Sym) const { + const MCSymbolData &SD = Sym.getData(); if (::isWeak(SD)) return true; @@ -1491,7 +1492,6 @@ bool ELFObjectWriter::isWeak(const MCSymbolData &SD) const { if (MCELF::GetBinding(SD) != ELF::STB_GLOBAL) return false; - const MCSymbol &Sym = SD.getSymbol(); if (!Sym.isInSection()) return false; diff --git a/lib/MC/MCExpr.cpp b/lib/MC/MCExpr.cpp index cd11caec6bc..3bb8d2f358e 100644 --- a/lib/MC/MCExpr.cpp +++ b/lib/MC/MCExpr.cpp @@ -608,8 +608,7 @@ static bool canExpand(const MCSymbol &Sym, const MCAssembler *Asm, bool InSet) { return true; if (!Asm) return false; - const MCSymbolData &SD = Asm->getSymbolData(Sym); - return !Asm->getWriter().isWeak(SD); + return !Asm->getWriter().isWeak(Sym); } bool MCExpr::EvaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm, diff --git a/lib/MC/MCObjectWriter.cpp b/lib/MC/MCObjectWriter.cpp index 6402a2fed94..7a9fd49035e 100644 --- a/lib/MC/MCObjectWriter.cpp +++ b/lib/MC/MCObjectWriter.cpp @@ -48,4 +48,4 @@ bool MCObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl( return &SecA == &SecB; } -bool MCObjectWriter::isWeak(const MCSymbolData &SD) const { return false; } +bool MCObjectWriter::isWeak(const MCSymbol &) const { return false; } diff --git a/lib/MC/WinCOFFObjectWriter.cpp b/lib/MC/WinCOFFObjectWriter.cpp index 6bf4a4d2136..9d5bfde52e1 100644 --- a/lib/MC/WinCOFFObjectWriter.cpp +++ b/lib/MC/WinCOFFObjectWriter.cpp @@ -175,7 +175,7 @@ public: const MCFragment &FB, bool InSet, bool IsPCRel) const override; - bool isWeak(const MCSymbolData &SD) const override; + bool isWeak(const MCSymbol &Sym) const override; void RecordRelocation(MCAssembler &Asm, const MCAsmLayout &Layout, const MCFragment *Fragment, const MCFixup &Fixup, @@ -661,11 +661,11 @@ bool WinCOFFObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl( InSet, IsPCRel); } -bool WinCOFFObjectWriter::isWeak(const MCSymbolData &SD) const { +bool WinCOFFObjectWriter::isWeak(const MCSymbol &Sym) const { + const MCSymbolData &SD = Sym.getData(); if (!SD.isExternal()) return false; - const MCSymbol &Sym = SD.getSymbol(); if (!Sym.isInSection()) return false;