1 ; RUN: llvm-extract -func foo -S < %s | FileCheck %s
2 ; RUN: llvm-extract -delete -func foo -S < %s | FileCheck --check-prefix=DELETE %s
4 ; Both aliases should be converted to declarations
5 ; CHECK: @zeda0 = external global i32
6 ; CHECK: define i32* @foo() {
7 ; CHECK-NEXT: call void @a0bar()
8 ; CHECK-NEXT: ret i32* @zeda0
10 ; CHECK: declare void @a0bar()
12 ; DELETE: @zed = global i32 0
13 ; DELETE: @zeda0 = alias i32* @zed
14 ; DELETE-NEXT: @a0foo = alias i32* ()* @foo
15 ; DELETE-NEXT: @a0a0bar = alias void ()* @a0bar
16 ; DELETE-NEXT: @a0bar = alias void ()* @bar
17 ; DELETE: declare i32* @foo()
18 ; DELETE: define void @bar() {
19 ; DELETE-NEXT: %c = call i32* @foo()
20 ; DELETE-NEXT: ret void
24 @zeda0 = alias i32* @zed
26 @a0foo = alias i32* ()* @foo
33 @a0a0bar = alias void ()* @a0bar
35 @a0bar = alias void ()* @bar