diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-03-17 04:29:51 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-03-17 04:29:51 +0000 |
commit | f863a3e2ecdaab42a7b986359c77310f24788d5b (patch) | |
tree | 6ba5a645b1c62a0f32ee23d3b8802ca46dd943c0 /llvm/lib/MC/ELFObjectWriter.cpp | |
parent | c714ef458107a72675ac581a7504986c587da04a (diff) | |
download | llvm-f863a3e2ecdaab42a7b986359c77310f24788d5b.zip llvm-f863a3e2ecdaab42a7b986359c77310f24788d5b.tar.gz llvm-f863a3e2ecdaab42a7b986359c77310f24788d5b.tar.bz2 |
Consider the base pointer for setting the symbol type.
This is really a consistency fix. Since given
a = b
we propagate the information, we should propagate it too given
a = b + (1 - 1)
Fixes pr19145.
llvm-svn: 204028
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 0f3fa04..54703b9 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -580,8 +580,9 @@ void ELFObjectWriter::WriteSymbol(MCDataFragment *SymtabF, ELFSymbolData &MSD, const MCAsmLayout &Layout) { MCSymbolData &OrigData = *MSD.SymbolData; - MCSymbolData &Data = - Layout.getAssembler().getSymbolData(OrigData.getSymbol().AliasedSymbol()); + const MCSymbol *Base = OrigData.getSymbol().getBaseSymbol(Layout); + const MCSymbolData &Data = + Base ? Layout.getAssembler().getSymbolData(*Base) : OrigData; bool IsReserved = Data.isCommon() || Data.getSymbol().isAbsolute() || Data.getSymbol().isVariable(); |