blob: ac7776dd7f39e8a9745a02819612eaaa687d867a [file] [log] [blame]
Rafael Espindola9d30d0f2012-10-29 00:27:55 +00001; RUN: llvm-extract -func foo -S < %s | FileCheck %s
2; RUN: llvm-extract -delete -func foo -S < %s | FileCheck --check-prefix=DELETE %s
Rafael Espindola7043858a2012-10-29 02:23:07 +00003; RUN: llvm-extract -alias zeda0 -S < %s | FileCheck --check-prefix=ALIAS %s
Alp Toker0d44e492013-10-28 23:37:45 +00004; RUN: llvm-extract -ralias '.*bar' -S < %s | FileCheck --check-prefix=ALIASRE %s
Rafael Espindola9d30d0f2012-10-29 00:27:55 +00005
6; Both aliases should be converted to declarations
7; CHECK: @zeda0 = external global i32
8; CHECK: define i32* @foo() {
9; CHECK-NEXT: call void @a0bar()
10; CHECK-NEXT: ret i32* @zeda0
11; CHECK-NEXT: }
12; CHECK: declare void @a0bar()
13
14; DELETE: @zed = global i32 0
David Blaikie2f408302015-09-11 03:22:04 +000015; DELETE: @zeda0 = alias i32, i32* @zed
16; DELETE-NEXT: @a0foo = alias i32* (), i32* ()* @foo
17; DELETE-NEXT: @a0a0bar = alias void (), void ()* @bar
18; DELETE-NEXT: @a0bar = alias void (), void ()* @bar
Rafael Espindola9d30d0f2012-10-29 00:27:55 +000019; DELETE: declare i32* @foo()
20; DELETE: define void @bar() {
21; DELETE-NEXT: %c = call i32* @foo()
22; DELETE-NEXT: ret void
23; DELETE-NEXT: }
24
Rafael Espindola7043858a2012-10-29 02:23:07 +000025; ALIAS: @zed = external global i32
David Blaikie2f408302015-09-11 03:22:04 +000026; ALIAS: @zeda0 = alias i32, i32* @zed
Rafael Espindola7043858a2012-10-29 02:23:07 +000027
David Blaikie2f408302015-09-11 03:22:04 +000028; ALIASRE: @a0a0bar = alias void (), void ()* @bar
29; ALIASRE: @a0bar = alias void (), void ()* @bar
Rafael Espindola7043858a2012-10-29 02:23:07 +000030; ALIASRE: declare void @bar()
31
Rafael Espindola9d30d0f2012-10-29 00:27:55 +000032@zed = global i32 0
David Blaikie2f408302015-09-11 03:22:04 +000033@zeda0 = alias i32, i32* @zed
Rafael Espindola9d30d0f2012-10-29 00:27:55 +000034
David Blaikie2f408302015-09-11 03:22:04 +000035@a0foo = alias i32* (), i32* ()* @foo
Rafael Espindola9d30d0f2012-10-29 00:27:55 +000036
37define i32* @foo() {
38 call void @a0bar()
39 ret i32* @zeda0
40}
41
David Blaikie2f408302015-09-11 03:22:04 +000042@a0a0bar = alias void (), void ()* @bar
Rafael Espindola9d30d0f2012-10-29 00:27:55 +000043
David Blaikie2f408302015-09-11 03:22:04 +000044@a0bar = alias void (), void ()* @bar
Rafael Espindola9d30d0f2012-10-29 00:27:55 +000045
46define void @bar() {
47 %c = call i32* @foo()
48 ret void
49}