aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLogan Chien <tzuhsiang.chien@gmail.com>2012-09-05 06:17:17 +0000
committerLogan Chien <tzuhsiang.chien@gmail.com>2012-09-05 06:17:17 +0000
commitfd91d8dd7e18107b35c7332b92d636420517e3cb (patch)
tree80bca951f818a6992b9a28550bc395a1e6363680
parentf6dc792df1452f015bc56590b77af9cb0d7b33d9 (diff)
downloadexternal_llvm-fd91d8dd7e18107b35c7332b92d636420517e3cb.tar.gz
external_llvm-fd91d8dd7e18107b35c7332b92d636420517e3cb.tar.bz2
external_llvm-fd91d8dd7e18107b35c7332b92d636420517e3cb.zip
Fix UseInitArray option for MIPS target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163193 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/Mips/MipsTargetObjectFile.cpp1
-rw-r--r--test/CodeGen/Mips/init-array.ll14
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsTargetObjectFile.cpp b/lib/Target/Mips/MipsTargetObjectFile.cpp
index a7fb454512..1f5e34f82c 100644
--- a/lib/Target/Mips/MipsTargetObjectFile.cpp
+++ b/lib/Target/Mips/MipsTargetObjectFile.cpp
@@ -26,6 +26,7 @@ SSThreshold("mips-ssection-threshold", cl::Hidden,
void MipsTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
TargetLoweringObjectFileELF::Initialize(Ctx, TM);
+ InitializeELF(TM.Options.UseInitArray);
SmallDataSection =
getContext().getELFSection(".sdata", ELF::SHT_PROGBITS,
diff --git a/test/CodeGen/Mips/init-array.ll b/test/CodeGen/Mips/init-array.ll
new file mode 100644
index 0000000000..f96ce26472
--- /dev/null
+++ b/test/CodeGen/Mips/init-array.ll
@@ -0,0 +1,14 @@
+; RUN: llc -mtriple mipsel-unknown-linux -use-init-array < %s | FileCheck %s
+
+target triple = "mipsel-unknown-linux"
+
+@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @test }]
+; CHECK: .section
+; CHECK: .init_array
+; CHECK-NOT: .ctors
+; CHECK: .4byte test
+
+define internal void @test() section ".text.startup" {
+entry:
+ ret void
+}