Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/AArch64/br-to-eh-lpad.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 60c9769439b8 |
children |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
5 ; The test is brittle and isn't ideally reduced, because in most cases the | 5 ; The test is brittle and isn't ideally reduced, because in most cases the |
6 ; branch would be removed (for instance, turned into a fallthrough), and in | 6 ; branch would be removed (for instance, turned into a fallthrough), and in |
7 ; that case, the machine verifier, which relies on analyzing branches for this | 7 ; that case, the machine verifier, which relies on analyzing branches for this |
8 ; kind of verification, is unable to check anything, so accepts the CFG. | 8 ; kind of verification, is unable to check anything, so accepts the CFG. |
9 | 9 |
10 define void @test_branch_to_landingpad() { | 10 define void @test_branch_to_landingpad() personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) { |
11 entry: | 11 entry: |
12 br i1 undef, label %if.end50.thread, label %if.then6 | 12 br i1 undef, label %if.end50.thread, label %if.then6 |
13 | 13 |
14 lpad: | 14 lpad: |
15 %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) | 15 %0 = landingpad { i8*, i32 } |
16 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @"OBJC_EHTYPE_$_NSString" | 16 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @"OBJC_EHTYPE_$_NSString" |
17 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @OBJC_EHTYPE_id | 17 catch %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765* @OBJC_EHTYPE_id |
18 catch i8* null | 18 catch i8* null |
19 br i1 undef, label %invoke.cont33, label %catch.fallthrough | 19 br i1 undef, label %invoke.cont33, label %catch.fallthrough |
20 | 20 |
28 | 28 |
29 invoke.cont7: | 29 invoke.cont7: |
30 unreachable | 30 unreachable |
31 | 31 |
32 if.end50.thread: | 32 if.end50.thread: |
33 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 125) | 33 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 125) |
34 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 128) | 34 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 128) |
35 unreachable | 35 unreachable |
36 | 36 |
37 invoke.cont33: | 37 invoke.cont33: |
38 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 119) | 38 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 119) |
39 unreachable | 39 unreachable |
40 | 40 |
41 invoke.cont41: | 41 invoke.cont41: |
42 invoke void @objc_exception_rethrow() | 42 invoke void @objc_exception_rethrow() |
43 to label %invoke.cont43 unwind label %lpad40 | 43 to label %invoke.cont43 unwind label %lpad40 |
44 | 44 |
45 invoke.cont43: | 45 invoke.cont43: |
46 unreachable | 46 unreachable |
47 | 47 |
48 lpad40: | 48 lpad40: |
49 %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) | 49 %1 = landingpad { i8*, i32 } |
50 catch i8* null | 50 catch i8* null |
51 br label %finally.catchall | 51 br label %finally.catchall |
52 | 52 |
53 finally.catchall: | 53 finally.catchall: |
54 tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 125) | 54 tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 125) |
55 unreachable | 55 unreachable |
56 } | 56 } |
57 | 57 |
58 %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765 = type { i8**, i8*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764* } | 58 %struct._objc_typeinfo.12.129.194.285.350.493.519.532.571.597.623.765 = type { i8**, i8*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764* } |
59 %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764 = type { %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._objc_cache.0.117.182.273.338.481.507.520.559.585.611.754*, i8* (i8*, i8*)**, %struct._class_ro_t.9.126.191.282.347.490.516.529.568.594.620.763* } | 59 %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764 = type { %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._class_t.10.127.192.283.348.491.517.530.569.595.621.764*, %struct._objc_cache.0.117.182.273.338.481.507.520.559.585.611.754*, i8* (i8*, i8*)**, %struct._class_ro_t.9.126.191.282.347.490.516.529.568.594.620.763* } |