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