diff options
Diffstat (limited to 'test/tools/llvm-extract/recursive.ll')
-rw-r--r-- | test/tools/llvm-extract/recursive.ll | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/tools/llvm-extract/recursive.ll b/test/tools/llvm-extract/recursive.ll new file mode 100644 index 000000000000..54813dba7968 --- /dev/null +++ b/test/tools/llvm-extract/recursive.ll @@ -0,0 +1,32 @@ +; 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 +} |