summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Molloy <james.molloy@arm.com>2012-01-28 15:58:32 +0000
committerJames Molloy <james.molloy@arm.com>2012-01-28 15:58:32 +0000
commitb47489d4ef505bc4bdbc2fc96356d7237bd1595e (patch)
treec56eb73944aa03534558d2a8fa2832019714a079
parent4efe5064c38216b10e845502fc040494e0888445 (diff)
downloadbcm5719-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.cpp2
-rw-r--r--llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp2
-rw-r--r--llvm/test/MC/ARM/pr11877.s6
-rw-r--r--llvm/test/MC/Mips/pr11877.s6
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
OpenPOWER on IntegriCloud