50 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -passes='require<memoryssa>,gvn' -verify-memoryssa -S %s | FileCheck %s3 4; This is a regression test for a bug in MemorySSA updater.5; Make sure that we don't crash and end up with a valid MemorySSA.6 7define void @test() personality ptr null {8; CHECK-LABEL: define void @test() personality ptr null {9; CHECK-NEXT: invoke void @bar()10; CHECK-NEXT: to label %[[BAR_NORMAL:.*]] unwind label %[[EXCEPTIONAL:.*]]11; CHECK: [[BAR_NORMAL]]:12; CHECK-NEXT: ret void13; CHECK: [[DEAD_BLOCK:.*:]]14; CHECK-NEXT: invoke void @baz()15; CHECK-NEXT: to label %[[BAZ_NORMAL:.*]] unwind label %[[EXCEPTIONAL]]16; CHECK: [[BAZ_NORMAL]]:17; CHECK-NEXT: ret void18; CHECK: [[EXCEPTIONAL]]:19; CHECK-NEXT: [[TMP9:%.*]] = landingpad { ptr, i32 }20; CHECK-NEXT: cleanup21; CHECK-NEXT: call void @foo()22; CHECK-NEXT: ret void23;24 invoke void @bar()25 to label %bar.normal unwind label %exceptional26 27bar.normal:28 ret void29 30dead.block:31 br label %baz.invoke32 33baz.invoke:34 invoke void @baz()35 to label %baz.normal unwind label %exceptional36 37baz.normal:38 ret void39 40exceptional:41 %tmp9 = landingpad { ptr, i32 }42 cleanup43 call void @foo()44 ret void45}46 47declare void @foo()48declare void @bar()49declare void @baz()50