OLD | NEW |
(Empty) | |
| 1 ; RUN: opt %s -pnacl-abi-simplify-preopt -S | FileCheck %s |
| 2 |
| 3 ; "-pnacl-abi-simplify-preopt" runs various passes which are tested |
| 4 ; thoroughly in other *.ll files. This file is a smoke test to check |
| 5 ; that "-pnacl-abi-simplify-preopt" runs what it's supposed to run. |
| 6 |
| 7 declare void @ext_func() |
| 8 |
| 9 |
| 10 define void @invoke_func() { |
| 11 invoke void @ext_func() to label %cont unwind label %lpad |
| 12 cont: |
| 13 ret void |
| 14 lpad: |
| 15 %lp = landingpad { i8*, i32 } personality i8* null cleanup |
| 16 ret void |
| 17 } |
| 18 ; CHECK-NOT: invoke void @ext_func() |
| 19 ; CHECK-NOT: landingpad |
| 20 |
| 21 |
| 22 define void @varargs_func(...) { |
| 23 ret void |
| 24 } |
| 25 ; CHECK-NOT: @varargs_func(...) |
| 26 |
| 27 |
| 28 %MyStruct = type { i32, i32 } |
| 29 |
| 30 ; Checks that ExpandVarArgs and ExpandStructRegs are applied in the |
| 31 ; right order. |
| 32 define void @get_struct_from_varargs(i8* %va_list, %MyStruct* %dest) { |
| 33 %val = va_arg i8* %va_list, %MyStruct |
| 34 store %MyStruct %val, %MyStruct* %dest |
| 35 ret void |
| 36 } |
| 37 ; CHECK-NOT: va_arg |
| 38 |
| 39 |
| 40 @llvm.global_ctors = appending global [0 x { i32, void ()* }] zeroinitializer |
| 41 ; CHECK-NOT: @llvm.global_ctors |
| 42 |
| 43 @tls_var = thread_local global i32 0 |
| 44 ; CHECK-NOT: thread_local |
| 45 |
| 46 @alias = alias i32* @tls_var |
| 47 ; CHECK-NOT: @alias |
| 48 |
| 49 @weak_ref = extern_weak global i8* |
| 50 ; CHECK-NOT: extern_weak |
OLD | NEW |