xref: /llvm-project/llvm/test/tools/llvm-extract/recursive.ll (revision f498bdcebfa439218e315be74a62ad52db3e2846)
11505de54SKeno Fischer; RUN: llvm-extract -func=a --recursive %s -S | FileCheck --check-prefix=CHECK-AB %s
21505de54SKeno Fischer; RUN: llvm-extract -func=a --recursive --delete %s -S | FileCheck --check-prefix=CHECK-CD %s
31505de54SKeno Fischer; RUN: llvm-extract -func=d --recursive %s -S | FileCheck --check-prefix=CHECK-CD %s
4*f498bdceSDavid Callahan; RUN: llvm-extract -func=e --recursive %s -S | FileCheck --check-prefix=CHECK-CD %s
51505de54SKeno Fischer
61505de54SKeno Fischer; CHECK-AB: define void @a
71505de54SKeno Fischer; CHECK-AB: define void @b
81505de54SKeno Fischer; CHECK-AB-NOT: define void @c
91505de54SKeno Fischer; CHECK-AB-NOT: define void @d
101505de54SKeno Fischer
111505de54SKeno Fischer; CHECK-CD-NOT: define void @a
121505de54SKeno Fischer; CHECK-CD-NOT: define void @b
131505de54SKeno Fischer; CHECK-CD: define void @c
141505de54SKeno Fischer; CHECK-CD: define void @d
151505de54SKeno Fischer
161505de54SKeno Fischerdefine void @a() {
171505de54SKeno Fischer  call void @b()
181505de54SKeno Fischer  ret void
191505de54SKeno Fischer}
201505de54SKeno Fischer
211505de54SKeno Fischerdefine void @b() {
221505de54SKeno Fischer  ret void
231505de54SKeno Fischer}
241505de54SKeno Fischer
251505de54SKeno Fischerdefine void @c() {
261505de54SKeno Fischer  call void @d()
271505de54SKeno Fischer  ret void
281505de54SKeno Fischer}
291505de54SKeno Fischer
301505de54SKeno Fischerdefine void @d() {
311505de54SKeno Fischer  call void @c()
321505de54SKeno Fischer  ret void
331505de54SKeno Fischer}
34*f498bdceSDavid Callahan
35*f498bdceSDavid Callahandefine void @e() {
36*f498bdceSDavid Callahan  invoke void @c()
37*f498bdceSDavid Callahan  to label %L unwind label %L
38*f498bdceSDavid CallahanL:
39*f498bdceSDavid Callahan  ret void
40*f498bdceSDavid Callahan}