Simplify ELFObjectWriter::ExecutePostLayoutBinding.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 28 Apr 2014 17:05:36 +0000 (17:05 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 28 Apr 2014 17:05:36 +0000 (17:05 +0000)
No functionality change. This removes the last use of AliasedSymbol in
ELFObjectWriter.cpp.

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

lib/MC/ELFObjectWriter.cpp

index 5c0d466ced6ceab412bb6bcc4c0b13334e7b6bcf..68e28cf4d4cba464b2c3f7dbe36f1e65fa4eada5 100644 (file)
@@ -531,12 +531,15 @@ void ELFObjectWriter::ExecutePostLayoutBinding(MCAssembler &Asm,
 
   for (MCSymbolData &OriginalData : Asm.symbols()) {
     const MCSymbol &Alias = OriginalData.getSymbol();
-    const MCSymbol &Symbol = Alias.AliasedSymbol();
-    MCSymbolData &SD = Asm.getSymbolData(Symbol);
 
     // Not an alias.
-    if (&Symbol == &Alias)
+    if (!Alias.isVariable())
+      continue;
+    auto *Ref = dyn_cast<MCSymbolRefExpr>(Alias.getVariableValue());
+    if (!Ref)
       continue;
+    const MCSymbol &Symbol = Ref->getSymbol();
+    MCSymbolData &SD = Asm.getSymbolData(Symbol);
 
     StringRef AliasName = Alias.getName();
     size_t Pos = AliasName.find('@');