MC: Use MCSymbol in MCObjectWriter::isWeak(), NFC
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Wed, 20 May 2015 15:10:03 +0000 (15:10 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Wed, 20 May 2015 15:10:03 +0000 (15:10 +0000)
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

include/llvm/MC/MCObjectWriter.h
lib/MC/ELFObjectWriter.cpp
lib/MC/MCExpr.cpp
lib/MC/MCObjectWriter.cpp
lib/MC/WinCOFFObjectWriter.cpp

index 6113208865ad9b0176ca9d8bbbf62c2f441cfb71..999d294712709b35af59b9b93c65b76ca7763707 100644 (file)
@@ -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.
   ///
index 30aa1bdd04581126e756f6e5fdadb9c0e2b8603a..c36da56f0cec7ffcdce2f682b491c9656deb0653 100644 (file)
@@ -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;
 
index cd11caec6bc28a7454cbe8f57ca072ece2eb9439..3bb8d2f358ea3293434d8a3992a69063460ff0b3 100644 (file)
@@ -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,
index 6402a2fed947ab0e2d404b8391be1f6a23d05899..7a9fd49035e6078af2ed1c905740514c832eaae3 100644 (file)
@@ -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; }
index 6bf4a4d213620a04b5eabd12bbdb824bd8c299c9..9d5bfde52e167fc9f5bcc4d7a5328db13c5073ed 100644 (file)
@@ -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;