global_ctors.ll 1.3 KB

123456789101112131415161718192021222324252627282930
  1. ; RUN: llvm-as %s -o %t.new.bc
  2. ; RUN: llvm-link %t.new.bc %S/Inputs/old_global_ctors.3.4.bc | llvm-dis | FileCheck %s
  3. ; RUN: llvm-link %S/Inputs/old_global_ctors.3.4.bc %t.new.bc | llvm-dis | FileCheck %s
  4. ; old_global_ctors.3.4.bc contains the following LLVM IL, assembled into
  5. ; bitcode by llvm-as from 3.4. It uses a two element @llvm.global_ctors array.
  6. ; ---
  7. ; declare void @a_global_ctor()
  8. ; declare void @b_global_ctor()
  9. ;
  10. ; @llvm.global_ctors = appending global [2 x { i32, void ()* } ] [
  11. ; { i32, void ()* } { i32 65535, void ()* @a_global_ctor },
  12. ; { i32, void ()* } { i32 65535, void ()* @b_global_ctor }
  13. ; ]
  14. ; ---
  15. declare void @c_global_ctor()
  16. declare void @d_global_ctor()
  17. @llvm.global_ctors = appending global [2 x { i32, void ()*, i8* } ] [
  18. { i32, void ()*, i8* } { i32 65535, void ()* @c_global_ctor, i8* null },
  19. { i32, void ()*, i8* } { i32 65535, void ()* @d_global_ctor, i8* null }
  20. ]
  21. ; CHECK: @llvm.global_ctors = appending global [4 x { i32, void ()*, i8* }] [
  22. ; CHECK-DAG: { i32, void ()*, i8* } { i32 65535, void ()* @a_global_ctor, i8* null }
  23. ; CHECK-DAG: { i32, void ()*, i8* } { i32 65535, void ()* @b_global_ctor, i8* null }
  24. ; CHECK-DAG: { i32, void ()*, i8* } { i32 65535, void ()* @c_global_ctor, i8* null }
  25. ; CHECK-DAG: { i32, void ()*, i8* } { i32 65535, void ()* @d_global_ctor, i8* null }
  26. ; CHECK: ]