blob: 4150ad3efbd1719f39a2d7c86d83dfb39adadccb [file] [log] [blame]
Reid Spencer69ccadd2006-12-02 04:23:10 +00001; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -disable-output &&
2; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -disable-output -enable-correct-eh-support
Chris Lattner90b10872005-09-27 18:34:31 +00003
4implementation
5
6int %foo() {
7 invoke int %foo() to label %Ok unwind label %Crap
8Ok:
9 invoke int %foo() to label %Ok2 unwind label %Crap
10Ok2:
11 ret int 2
12Crap:
13 ret int 1
14}
15
16int %bar(int %blah) {
17 br label %doit
18doit:
19 ;; Value live across an unwind edge.
20 %B2 = add int %blah, 1
21 invoke int %foo() to label %Ok unwind label %Crap
22Ok:
23 invoke int %foo() to label %Ok2 unwind label %Crap
24Ok2:
25 ret int 2
26Crap:
27 ret int %B2
28}