diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/Regression/Transforms/LowerInvoke/basictest.ll | 28 | 
1 files changed, 28 insertions, 0 deletions
| diff --git a/llvm/test/Regression/Transforms/LowerInvoke/basictest.ll b/llvm/test/Regression/Transforms/LowerInvoke/basictest.ll new file mode 100644 index 00000000000..93022f5b316 --- /dev/null +++ b/llvm/test/Regression/Transforms/LowerInvoke/basictest.ll @@ -0,0 +1,28 @@ +; RUN: llvm-as < %s | opt -lowerinvoke -disable-output && +; RUN: llvm-as < %s | opt -lowerinvoke -disable-output -enable-correct-eh-support + +implementation + +int %foo() { +	invoke int %foo() to label %Ok unwind label %Crap +Ok: +	invoke int %foo() to label %Ok2 unwind label %Crap +Ok2: +	ret int 2 +Crap: +	ret int 1 +} + +int %bar(int %blah) { +	br label %doit +doit: +	;; Value live across an unwind edge. +	%B2 = add int %blah, 1 +	invoke int %foo() to label %Ok unwind label %Crap +Ok: +	invoke int %foo() to label %Ok2 unwind label %Crap +Ok2: +	ret int 2 +Crap: +	ret int %B2 +} | 

