73 lines · cpp
1// RUN: %clang_cc1 -triple powerpc-ibm-aix-xcoff -x c++ -emit-llvm < %s | \2// RUN: FileCheck %s3// RUN: %clang_cc1 -triple powerpc64-ibm-aix-xcoff -x c++ -emit-llvm < %s | \4// RUN: FileCheck %s5 6struct test {7 test() {}8 ~test() {}9};10 11__attribute__((init_priority(200)))12test t1;13__attribute__((init_priority(200)))14test t2;15__attribute__((init_priority(300)))16test t3;17__attribute__((init_priority(150)))18test t4;19test t5;20 21// CHECK: @llvm.global_ctors = appending global [4 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 150, ptr @_GLOBAL__I_000150, ptr null }, { i32, ptr, ptr } { i32 200, ptr @_GLOBAL__I_000200, ptr null }, { i32, ptr, ptr } { i32 300, ptr @_GLOBAL__I_000300, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I__, ptr null }]22// CHECK: @llvm.global_dtors = appending global [4 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 150, ptr @_GLOBAL__a_000150, ptr null }, { i32, ptr, ptr } { i32 200, ptr @_GLOBAL__a_000200, ptr null }, { i32, ptr, ptr } { i32 300, ptr @_GLOBAL__a_000300, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__D_a, ptr null }]23 24// CHECK: define internal void @_GLOBAL__I_000150() [[ATTR:#[0-9]+]] {25// CHECK: entry:26// CHECK: call void @__cxx_global_var_init.3()27// CHECK: ret void28// CHECK: }29 30// CHECK: define internal void @_GLOBAL__I_000200() [[ATTR:#[0-9]+]] {31// CHECK: entry:32// CHECK: call void @__cxx_global_var_init()33// CHECK: call void @__cxx_global_var_init.1()34// CHECK: ret void35// CHECK: }36 37// CHECK: define internal void @_GLOBAL__I_000300() [[ATTR:#[0-9]+]] {38// CHECK: entry:39// CHECK: call void @__cxx_global_var_init.2()40// CHECK: ret void41// CHECK: }42 43// CHECK: define internal void @_GLOBAL__sub_I__() [[ATTR:#[0-9]+]] {44// CHECK: entry:45// CHECK: call void @__cxx_global_var_init.4()46// CHECK: ret void47// CHECK: }48 49// CHECK: define internal void @_GLOBAL__a_000150() [[ATTR:#[0-9]+]] {50// CHECK: entry:51// CHECK: call void @__finalize_t4()52// CHECK: ret void53// CHECK: }54 55// CHECK: define internal void @_GLOBAL__a_000200() [[ATTR:#[0-9]+]] {56// CHECK: entry:57// CHECK: call void @__finalize_t2()58// CHECK: call void @__finalize_t1()59// CHECK: ret void60// CHECK: }61 62// CHECK: define internal void @_GLOBAL__a_000300() [[ATTR:#[0-9]+]] {63// CHECK: entry:64// CHECK: call void @__finalize_t3()65// CHECK: ret void66// CHECK: }67 68// CHECK: define internal void @_GLOBAL__D_a() [[ATTR:#[0-9]+]] {69// CHECK: entry:70// CHECK: call void @__finalize_t5()71// CHECK: ret void72// CHECK: }73