| ; 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 | 
 |  | 
 | ; 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 | 
 | } |