| ; RUN: llvm-as < %s | llvm-dis | FileCheck %s |
| ; RUN: verify-uselistorder %s |
| |
| ; CHECK: @a = global [4 x ptr] [ptr no_cfi @f1, ptr @f1, ptr @f2, ptr no_cfi @f2] |
| @a = global [4 x void ()*] [void ()* no_cfi @f1, void ()* @f1, void ()* @f2, void ()* no_cfi @f2] |
| ; CHECK: @b = constant ptr no_cfi @f3 |
| @b = constant void ()* no_cfi @f3 |
| ; CHECK: @c = constant ptr @f3 |
| @c = constant void ()* @f3 |
| |
| ; CHECK: declare void @f1() |
| declare void @f1() |
| |
| ; CHECK: declare void @f2() |
| declare void @f2() |
| |
| ; CHECK: define void @f3() |
| define void @f3() { |
| ; CHECK: call void no_cfi @f4() |
| call void no_cfi @f4() |
| ; CHECK: call void @f4() |
| call void @f4() |
| ; CHECK: call void no_cfi @f5() |
| call void no_cfi @f5() |
| ; CHECK: call void @f5() |
| call void @f5() |
| ret void |
| } |
| |
| ; CHECK: declare void @f4() |
| declare void @f4() |
| |
| ; CHECK: declare void @f5() |
| declare void @f5() |
| |
| define void @g() { |
| %n = alloca void ()*, align 8 |
| ; CHECK: store ptr no_cfi @f5, ptr %n, align 8 |
| store void ()* no_cfi @f5, void ()** %n, align 8 |
| %1 = load void ()*, void ()** %n |
| call void %1() |
| ret void |
| } |