[llvm] r238978 - Simplify the logic in ELFObjectWriter::isInSymtab. NFC.

Rafael Espindola rafael.espindola at gmail.com
Wed Jun 3 14:23:22 PDT 2015


Author: rafael
Date: Wed Jun  3 16:23:21 2015
New Revision: 238978

URL: http://llvm.org/viewvc/llvm-project?rev=238978&view=rev
Log:
Simplify the logic in ELFObjectWriter::isInSymtab. NFC.

_GLOBAL_OFFSET_TABLE_ is not magical and we can now directly check for a
symbol never getting an explicit binding.

Modified:
    llvm/trunk/lib/MC/ELFObjectWriter.cpp

Modified: llvm/trunk/lib/MC/ELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/ELFObjectWriter.cpp?rev=238978&r1=238977&r2=238978&view=diff
==============================================================================
--- llvm/trunk/lib/MC/ELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/ELFObjectWriter.cpp Wed Jun  3 16:23:21 2015
@@ -740,17 +740,13 @@ bool ELFObjectWriter::isInSymtab(const M
   if (Renamed)
     return false;
 
-  if (Symbol.getName() == "_GLOBAL_OFFSET_TABLE_")
-    return true;
-
-  if (Symbol.isVariable()) {
-    const MCSymbol *Base = Layout.getBaseSymbol(Symbol);
-    if (Base && Base->isUndefined())
-      return false;
+  if (Symbol.isVariable() && Symbol.isUndefined()) {
+    // FIXME: this is here just to diagnose the case of a var = commmon_sym.
+    Layout.getBaseSymbol(Symbol);
+    return false;
   }
 
-  bool IsGlobal = Symbol.getBinding() == ELF::STB_GLOBAL;
-  if (!Symbol.isVariable() && Symbol.isUndefined() && !IsGlobal)
+  if (Symbol.isUndefined() && !Symbol.isBindingSet())
     return false;
 
   if (Symbol.getType() == ELF::STT_SECTION)





More information about the llvm-commits mailing list