summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/ctor_order.ll
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2011-12-03 23:49:37 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2011-12-03 23:49:37 +0000
commit0cb2a45cceaefb48ec7efb902c453aaae4e24cb2 (patch)
tree194dc5e379c84d0f1a061c47fb0dfa186dbb05b4 /test/CodeGen/ARM/ctor_order.ll
parent80b1ae92922202c197078038c4229045cb1e295f (diff)
downloadllvm-0cb2a45cceaefb48ec7efb902c453aaae4e24cb2.tar.gz
llvm-0cb2a45cceaefb48ec7efb902c453aaae4e24cb2.tar.bz2
llvm-0cb2a45cceaefb48ec7efb902c453aaae4e24cb2.tar.xz
Emit the ctors in the proper order on ARM/EABI.
Maybe some targets should use this as well. Patch by Evgeniy Stepanov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145781 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/ctor_order.ll')
-rw-r--r--test/CodeGen/ARM/ctor_order.ll28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/ctor_order.ll b/test/CodeGen/ARM/ctor_order.ll
new file mode 100644
index 0000000000..7f00eb31f9
--- /dev/null
+++ b/test/CodeGen/ARM/ctor_order.ll
@@ -0,0 +1,28 @@
+; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s -check-prefix=DARWIN
+; RUN: llc < %s -mtriple=arm-linux-gnu | FileCheck %s -check-prefix=ELF
+; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s -check-prefix=GNUEABI
+
+; DARWIN: .section __DATA,__mod_init_func,mod_init_funcs
+; DARWIN: .long _f151
+; DARWIN-NEXT: .long _f152
+
+; ELF: .section .ctors,"aw",%progbits
+; ELF: .long f152
+; ELF-NEXT: .long f151
+
+; GNUEABI: .section .init_array,"aw",%init_array
+; GNUEABI: .long f151
+; GNUEABI-NEXT: .long f152
+
+
+@llvm.global_ctors = appending global [2 x { i32, void ()* }] [ { i32, void ()* } { i32 151, void ()* @f151 }, { i32, void ()* } { i32 152, void ()* @f152 } ]
+
+define void @f151() {
+entry:
+ ret void
+}
+
+define void @f152() {
+entry:
+ ret void
+}