From a49b828f8fe1f50d23bf177cf019610e938c336b Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Tue, 1 Nov 2011 04:49:29 +0000 Subject: Make sure we use the right insertion point when instcombine replaces a PHI with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275. llvm-svn: 143437 --- llvm/test/Transforms/InstCombine/crash.ll | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'llvm/test/Transforms/InstCombine') diff --git a/llvm/test/Transforms/InstCombine/crash.ll b/llvm/test/Transforms/InstCombine/crash.ll index 1a657f53a60..54a77aab45f 100644 --- a/llvm/test/Transforms/InstCombine/crash.ll +++ b/llvm/test/Transforms/InstCombine/crash.ll @@ -374,3 +374,28 @@ for.inc: ; preds = %for.cond return: ; No predecessors! ret void } + +; PR11275 +declare void @test18b() noreturn +declare void @test18foo(double**) +declare void @test18a() noreturn +define fastcc void @test18x(i8* %t0, i1 %b) uwtable align 2 { +entry: + br i1 %b, label %e1, label %e2 +e1: + %t2 = bitcast i8* %t0 to double** + invoke void @test18b() noreturn + to label %u unwind label %lpad +e2: + %t4 = bitcast i8* %t0 to double** + invoke void @test18a() noreturn + to label %u unwind label %lpad +lpad: + %t5 = phi double** [ %t2, %e1 ], [ %t4, %e2 ] + %lpad.nonloopexit262 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 + cleanup + call void @test18foo(double** %t5) + unreachable +u: + unreachable +} -- cgit v1.2.3