diff options
Diffstat (limited to 'test/Feature/unwindto.ll')
-rw-r--r-- | test/Feature/unwindto.ll | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/Feature/unwindto.ll b/test/Feature/unwindto.ll new file mode 100644 index 0000000000..7806143759 --- /dev/null +++ b/test/Feature/unwindto.ll @@ -0,0 +1,48 @@ +; RUN: llvm-as < %s | llvm-dis | llvm-as -disable-output +; PR1269 +; END +; http://nondot.org/sabre/LLVMNotes/ExceptionHandlingChanges.txt + +define i1 @test1(i8 %i, i8 %j) { +entry: unwind_to %target + %tmp = sub i8 %i, %j ; <i8> [#uses=1] + %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1] + ret i1 %b +target: + ret i1 false +} + +define i1 @test2(i8 %i, i8 %j) { +unwind_to %1 + %tmp = sub i8 %i, %j ; <i8> [#uses=1] + %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1] + ret i1 %b + ; No predecessors! + ret i1 false +} + +define i1 @test3(i8 %i, i8 %j) { +unwind_to %1 + %tmp = sub i8 %i, %j ; <i8> [#uses=1] + %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1] + ret i1 %b +unwind_to %0 + ret i1 false +} + +define i1 @test4(i8 %i, i8 %j) { + %tmp = sub i8 %i, %j ; <i8> [#uses=1] + %b = icmp eq i8 %tmp, 0 ; <i1> [#uses=1] + br label %1 +unwind_to %1 + ret i1 false +} + +define void @test5() { + unwind +} + +define void @test6() { +unwind: unwind_to %unwind + unwind +} |