summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-05-28 10:41:15 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-05-28 10:41:15 +0000
commitfe796dca90966bb605b3d7c1e890e98c500f4490 (patch)
tree58acf3a18fd9c855c5d7b94c237a076984196bdc
parent96d06c6972b9aa95d2be0a3483ac2137d680efad (diff)
downloadbcm5719-llvm-fe796dca90966bb605b3d7c1e890e98c500f4490.tar.gz
bcm5719-llvm-fe796dca90966bb605b3d7c1e890e98c500f4490.zip
Fix default reloc model on ARM.
llvm-svn: 271111
-rw-r--r--llvm/lib/Target/ARM/ARMTargetMachine.cpp4
-rw-r--r--llvm/test/CodeGen/ARM/default-reloc.ll5
2 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMTargetMachine.cpp b/llvm/lib/Target/ARM/ARMTargetMachine.cpp
index d3276f79b5e..b2b6f3ae547 100644
--- a/llvm/lib/Target/ARM/ARMTargetMachine.cpp
+++ b/llvm/lib/Target/ARM/ARMTargetMachine.cpp
@@ -175,8 +175,8 @@ static std::string computeDataLayout(const Triple &TT, StringRef CPU,
static Reloc::Model getEffectiveRelocModel(const Triple &TT,
Optional<Reloc::Model> RM) {
if (!RM.hasValue())
- // Default relocation model on Darwin is PIC, not DynamicNoPIC.
- return TT.isOSDarwin() ? Reloc::PIC_ : Reloc::DynamicNoPIC;
+ // Default relocation model on Darwin is PIC.
+ return TT.isOSBinFormatMachO() ? Reloc::PIC_ : Reloc::Static;
// DynamicNoPIC is only used on darwin.
if (*RM == Reloc::DynamicNoPIC && !TT.isOSDarwin())
diff --git a/llvm/test/CodeGen/ARM/default-reloc.ll b/llvm/test/CodeGen/ARM/default-reloc.ll
new file mode 100644
index 00000000000..0b80b73061b
--- /dev/null
+++ b/llvm/test/CodeGen/ARM/default-reloc.ll
@@ -0,0 +1,5 @@
+; RUN: llc -mtriple=armv7-linux-gnu -O0 < %s
+@a = external global i32
+define i32* @get() {
+ ret i32* @a
+}
OpenPOWER on IntegriCloud