diff options
Diffstat (limited to 'llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll')
-rw-r--r-- | llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll b/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll new file mode 100644 index 00000000000..b7965f08787 --- /dev/null +++ b/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll @@ -0,0 +1,44 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output + +implementation ; Functions: + +declare void %strlen() +declare void %_ZN10QByteArray6resizeEi() +declare void %q_atomic_decrement() + +void %_ZNK10QByteArray13leftJustifiedEicb() { +entry: + invoke void %strlen( ) + to label %tmp.3.i.noexc unwind label %invoke_catch.0 + +tmp.3.i.noexc: ; preds = %entry + br bool false, label %then.0, label %else.0 + +invoke_catch.0: ; preds = %entry + invoke void %q_atomic_decrement( ) + to label %tmp.1.i.i183.noexc unwind label %terminate + +tmp.1.i.i183.noexc: ; preds = %invoke_catch.0 + unwind + +then.0: ; preds = %tmp.3.i.noexc + invoke void %_ZN10QByteArray6resizeEi( ) + to label %invoke_cont.1 unwind label %invoke_catch.1 + +invoke_catch.1: ; preds = %then.0 + invoke void %q_atomic_decrement( ) + to label %tmp.1.i.i162.noexc unwind label %terminate + +tmp.1.i.i162.noexc: ; preds = %invoke_catch.1 + ret void + +invoke_cont.1: ; preds = %then.0 + ret void + +else.0: ; preds = %tmp.3.i.noexc + ret void + +terminate: ; preds = %invoke_catch.1, %invoke_catch.0 + %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=1] + unreachable +} |