; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 ; RUN: opt -passes='require,gvn' -verify-memoryssa -S %s | FileCheck %s ; This is a regression test for a bug in MemorySSA updater. ; Make sure that we don't crash and end up with a valid MemorySSA. define void @test() personality ptr null { ; CHECK-LABEL: define void @test() personality ptr null { ; CHECK-NEXT: invoke void @bar() ; CHECK-NEXT: to label %[[BAR_NORMAL:.*]] unwind label %[[EXCEPTIONAL:.*]] ; CHECK: [[BAR_NORMAL]]: ; CHECK-NEXT: ret void ; CHECK: [[DEAD_BLOCK:.*:]] ; CHECK-NEXT: invoke void @baz() ; CHECK-NEXT: to label %[[BAZ_NORMAL:.*]] unwind label %[[EXCEPTIONAL]] ; CHECK: [[BAZ_NORMAL]]: ; CHECK-NEXT: ret void ; CHECK: [[EXCEPTIONAL]]: ; CHECK-NEXT: [[TMP9:%.*]] = landingpad { ptr, i32 } ; CHECK-NEXT: cleanup ; CHECK-NEXT: call void @foo() ; CHECK-NEXT: ret void ; invoke void @bar() to label %bar.normal unwind label %exceptional bar.normal: ret void dead.block: br label %baz.invoke baz.invoke: invoke void @baz() to label %baz.normal unwind label %exceptional baz.normal: ret void exceptional: %tmp9 = landingpad { ptr, i32 } cleanup call void @foo() ret void } declare void @foo() declare void @bar() declare void @baz()