recursive.ll
850 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
; RUN: llvm-extract -func=a --recursive %s -S | FileCheck --check-prefix=CHECK-AB %s
; RUN: llvm-extract -func=a --recursive --delete %s -S | FileCheck --check-prefix=CHECK-CD %s
; RUN: llvm-extract -func=d --recursive %s -S | FileCheck --check-prefix=CHECK-CD %s
; RUN: llvm-extract -func=e --recursive %s -S | FileCheck --check-prefix=CHECK-CD %s
; CHECK-AB: define void @a
; CHECK-AB: define void @b
; CHECK-AB-NOT: define void @c
; CHECK-AB-NOT: define void @d
; CHECK-CD-NOT: define void @a
; CHECK-CD-NOT: define void @b
; CHECK-CD: define void @c
; CHECK-CD: define void @d
define void @a() {
call void @b()
ret void
}
define void @b() {
ret void
}
define void @c() {
call void @d()
ret void
}
define void @d() {
call void @c()
ret void
}
define void @e() {
invoke void @c()
to label %L unwind label %L
L:
ret void
}