diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2011-12-03 23:49:37 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2011-12-03 23:49:37 +0000 |
commit | 0cb2a45cceaefb48ec7efb902c453aaae4e24cb2 (patch) | |
tree | 194dc5e379c84d0f1a061c47fb0dfa186dbb05b4 /test/CodeGen/ARM/ctor_order.ll | |
parent | 80b1ae92922202c197078038c4229045cb1e295f (diff) | |
download | llvm-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.ll | 28 |
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 +} |