diff options
author | James Molloy <james.molloy@arm.com> | 2012-01-28 15:58:32 +0000 |
---|---|---|
committer | James Molloy <james.molloy@arm.com> | 2012-01-28 15:58:32 +0000 |
commit | b47489d4ef505bc4bdbc2fc96356d7237bd1595e (patch) | |
tree | c56eb73944aa03534558d2a8fa2832019714a079 | |
parent | 4efe5064c38216b10e845502fc040494e0888445 (diff) | |
download | bcm5719-llvm-b47489d4ef505bc4bdbc2fc96356d7237bd1595e.tar.gz bcm5719-llvm-b47489d4ef505bc4bdbc2fc96356d7237bd1595e.zip |
Ensure .AliasedSymbol() is called on all uses of getSymbol(). Affects ARM and MIPS ELF backends.
Fixes PR11877
llvm-svn: 149180
-rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp | 2 | ||||
-rw-r--r-- | llvm/test/MC/ARM/pr11877.s | 6 | ||||
-rw-r--r-- | llvm/test/MC/Mips/pr11877.s | 6 |
4 files changed, 14 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp index 2ad64de9886..7d44ddafeae 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp @@ -69,7 +69,7 @@ const MCSymbol *ARMELFObjectWriter::ExplicitRelSym(const MCAssembler &Asm, const MCFragment &F, const MCFixup &Fixup, bool IsPCRel) const { - const MCSymbol &Symbol = Target.getSymA()->getSymbol(); + const MCSymbol &Symbol = Target.getSymA()->getSymbol().AliasedSymbol(); bool EmitThisSym = false; const MCSectionELF &Section = diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp index 9c2f81e596f..196e17fefab 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp @@ -53,7 +53,7 @@ const MCSymbol *MipsELFObjectWriter::ExplicitRelSym(const MCAssembler &Asm, const MCFixup &Fixup, bool IsPCRel) const { assert(Target.getSymA() && "SymA cannot be 0."); - const MCSymbol &Sym = Target.getSymA()->getSymbol(); + const MCSymbol &Sym = Target.getSymA()->getSymbol().AliasedSymbol(); if (Sym.getSection().getKind().isMergeableCString() || Sym.getSection().getKind().isMergeableConst()) diff --git a/llvm/test/MC/ARM/pr11877.s b/llvm/test/MC/ARM/pr11877.s new file mode 100644 index 00000000000..da3f6ad1d8e --- /dev/null +++ b/llvm/test/MC/ARM/pr11877.s @@ -0,0 +1,6 @@ +// RUN: llvm-mc -triple arm-unknown-unknown %s + +i: + .long g +g = h +h = i diff --git a/llvm/test/MC/Mips/pr11877.s b/llvm/test/MC/Mips/pr11877.s new file mode 100644 index 00000000000..d354ce4c554 --- /dev/null +++ b/llvm/test/MC/Mips/pr11877.s @@ -0,0 +1,6 @@ +// RUN: llvm-mc -triple mips-unknown-unknown %s + +i: + .long g +g = h +h = i |