test for something more interesting than not crashing
[oota-llvm.git] / test / Feature / unwindto.ll
1 ; RUN: llvm-as < %s | llvm-dis | llvm-as -disable-output
2 ; PR1269
3 ; END
4 ; http://nondot.org/sabre/LLVMNotes/ExceptionHandlingChanges.txt
5
6 define i1 @test1(i8 %i, i8 %j) {
7 entry: unwind_to %target
8         %tmp = sub i8 %i, %j            ; <i8> [#uses=1]
9         %b = icmp eq i8 %tmp, 0         ; <i1> [#uses=1]
10         ret i1 %b
11 target:
12         ret i1 false
13 }
14
15 define i1 @test2(i8 %i, i8 %j) {
16 entry:
17         br label %0
18 unwind_to %1
19         %tmp = sub i8 %i, %j            ; <i8> [#uses=1]
20         %b = icmp eq i8 %tmp, 0         ; <i1> [#uses=1]
21         ret i1 %b
22                 ; No predecessors!
23         ret i1 false
24 }
25
26 define i1 @test3(i8 %i, i8 %j) {
27 entry:
28         br label %0
29 unwind_to %1
30         %tmp = sub i8 %i, %j            ; <i8> [#uses=1]
31         %b = icmp eq i8 %tmp, 0         ; <i1> [#uses=1]
32         ret i1 %b
33 unwind_to %0
34         ret i1 false
35 }
36
37 define i1 @test4(i8 %i, i8 %j) {
38         %tmp = sub i8 %i, %j            ; <i8> [#uses=1]
39         %b = icmp eq i8 %tmp, 0         ; <i1> [#uses=1]
40         br label %1
41 unwind_to %1
42         ret i1 false
43 }
44
45 define void @test5() {
46   unwind
47 }
48
49 define void @test6() {
50 entry:
51         br label %unwind
52 unwind: unwind_to %unwind
53   unwind
54 }