summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-06-03 21:23:21 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-06-03 21:23:21 +0000
commitef1e863c2c1a6ea8c8a6bf6138f25f8b2e607584 (patch)
treed1d3a3e9c1af145177e08d8bb45713fe9102a551 /llvm/lib/MC/ELFObjectWriter.cpp
parent8eeb3e290d873d8c19cef7d16de9c86b91e32d00 (diff)
downloadbcm5719-llvm-ef1e863c2c1a6ea8c8a6bf6138f25f8b2e607584.tar.gz
bcm5719-llvm-ef1e863c2c1a6ea8c8a6bf6138f25f8b2e607584.zip
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. llvm-svn: 238978
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/ELFObjectWriter.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index d0bdfc15cde..bb1b9a52ec8 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -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)
OpenPOWER on IntegriCloud