74 lines · plain
1; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s2; This testcase makes sure we can handle invoke @llvm.donothing without3; assertion failure.4; <rdar://problem/13228754> & <rdar://problem/13316637>5 6; CHECK: .globl _foo7define void @foo() personality ptr @__gxx_personality_sj0 {8invoke.cont:9 invoke void @callA() 10 to label %invoke.cont25 unwind label %lpad211invoke.cont25:12 invoke void @llvm.donothing()13 to label %invoke.cont27 unwind label %lpad1514 15invoke.cont27:16 invoke void @callB()17 to label %invoke.cont75 unwind label %lpad1518 19invoke.cont75:20 ret void21 22lpad2:23 %0 = landingpad { ptr, i32 }24 cleanup25 br label %eh.resume26 27lpad15:28 %1 = landingpad { ptr, i32 }29 cleanup30 br label %eh.resume31 32eh.resume:33 resume { ptr, i32 } zeroinitializer34}35 36; CHECK: .globl _bar37define linkonce_odr void @bar(ptr %a) personality ptr @__gxx_personality_sj0 {38if.end.i.i.i:39 invoke void @llvm.donothing()40 to label %call.i.i.i.noexc unwind label %eh.resume41 42call.i.i.i.noexc:43 br i1 false, label %cleanup, label %new.notnull.i.i44 45new.notnull.i.i:46 br label %cleanup47 48cleanup:49 %0 = load i32, ptr %a, align 450 %inc294 = add nsw i32 %0, 451 store i32 %inc294, ptr %a, align 452 br i1 false, label %_ZN3lol5ArrayIivvvvvvvED1Ev.exit, label %delete.notnull.i.i.i140953 54delete.notnull.i.i.i1409:55 br label %_ZN3lol5ArrayIivvvvvvvED1Ev.exit56 57_ZN3lol5ArrayIivvvvvvvED1Ev.exit:58 ret void59 60eh.resume:61 %1 = landingpad { ptr, i32 }62 cleanup63 %2 = extractvalue { ptr, i32 } %1, 064 %3 = extractvalue { ptr, i32 } %1, 165 %lpad.val = insertvalue { ptr, i32 } undef, ptr %2, 066 %lpad.val395 = insertvalue { ptr, i32 } %lpad.val, i32 %3, 167 resume { ptr, i32 } %lpad.val39568}69 70declare void @callA()71declare void @callB()72declare void @llvm.donothing() nounwind readnone73declare i32 @__gxx_personality_sj0(...)74