1 ; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s 2 ; This testcase makes sure we can handle invoke @llvm.donothing without 3 ; assertion failure. 4 ; <rdar://problem/13228754> & <rdar://problem/13316637> 5 6 ; CHECK: .globl _foo 7 define void @foo() { 8 invoke.cont: 9 invoke void @callA() 10 to label %invoke.cont25 unwind label %lpad2 11 invoke.cont25: 12 invoke void @llvm.donothing() 13 to label %invoke.cont27 unwind label %lpad15 14 15 invoke.cont27: 16 invoke void @callB() 17 to label %invoke.cont75 unwind label %lpad15 18 19 invoke.cont75: 20 ret void 21 22 lpad2: 23 %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) 24 cleanup 25 br label %eh.resume 26 27 lpad15: 28 %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) 29 cleanup 30 br label %eh.resume 31 32 eh.resume: 33 resume { i8*, i32 } zeroinitializer 34 } 35 36 ; CHECK: .globl _bar 37 define linkonce_odr void @bar(i32* %a) { 38 if.end.i.i.i: 39 invoke void @llvm.donothing() 40 to label %call.i.i.i.noexc unwind label %eh.resume 41 42 call.i.i.i.noexc: 43 br i1 false, label %cleanup, label %new.notnull.i.i 44 45 new.notnull.i.i: 46 br label %cleanup 47 48 cleanup: 49 %0 = load i32* %a, align 4 50 %inc294 = add nsw i32 %0, 4 51 store i32 %inc294, i32* %a, align 4 52 br i1 false, label %_ZN3lol5ArrayIivvvvvvvED1Ev.exit, label %delete.notnull.i.i.i1409 53 54 delete.notnull.i.i.i1409: 55 br label %_ZN3lol5ArrayIivvvvvvvED1Ev.exit 56 57 _ZN3lol5ArrayIivvvvvvvED1Ev.exit: 58 ret void 59 60 eh.resume: 61 %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*) 62 cleanup 63 %2 = extractvalue { i8*, i32 } %1, 0 64 %3 = extractvalue { i8*, i32 } %1, 1 65 %lpad.val = insertvalue { i8*, i32 } undef, i8* %2, 0 66 %lpad.val395 = insertvalue { i8*, i32 } %lpad.val, i32 %3, 1 67 resume { i8*, i32 } %lpad.val395 68 } 69 70 declare void @callA() 71 declare void @callB() 72 declare void @llvm.donothing() nounwind readnone 73 declare i32 @__gxx_personality_sj0(...) 74