Simplify the logic in ELFObjectWriter::isInSymtab. NFC.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 3 Jun 2015 21:23:21 +0000 (21:23 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 3 Jun 2015 21:23:21 +0000 (21:23 +0000)
_GLOBAL_OFFSET_TABLE_ is not magical and we can now directly check for a
symbol never getting an explicit binding.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238978 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/ELFObjectWriter.cpp

index d0bdfc15cdeec9c588cdc9b9f77c0e16c96a7bf0..bb1b9a52ec8d67eed75fbb87626e9a714759722a 100644 (file)
@@ -740,17 +740,13 @@ bool ELFObjectWriter::isInSymtab(const MCAsmLayout &Layout,
   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)