aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-11-01 18:02:53 +0000
committerChris Lattner <sabre@nondot.org>2006-11-01 18:02:53 +0000
commit22c8648b8aa88ecf56f331f115c45681530a6b4a (patch)
treeacc94422b4360c07da9685db9bde4dc871003de1 /test
parentbb9fd30e6b578b90b4286034ad612564c9c48e48 (diff)
downloadexternal_llvm-22c8648b8aa88ecf56f331f115c45681530a6b4a.zip
external_llvm-22c8648b8aa88ecf56f331f115c45681530a6b4a.tar.gz
external_llvm-22c8648b8aa88ecf56f331f115c45681530a6b4a.tar.bz2
new testcase that crashes global opt, reduced from chomp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31351 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll b/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
new file mode 100644
index 0000000..bba399a
--- /dev/null
+++ b/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
@@ -0,0 +1,33 @@
+; RUN: llvm-as < %s | opt -globalopt -disable-output
+ %struct._list = type { int*, %struct._list* }
+ %struct._play = type { int, int*, %struct._list*, %struct._play* }
+%nrow = internal global int 0 ; <int*> [#uses=2]
+
+implementation ; Functions:
+
+void %make_play() {
+entry:
+ br label %cond_true16.i
+
+cond_true16.i: ; preds = %cond_true16.i, %entry
+ %low.0.in.i.0 = phi int* [ %nrow, %entry ], [ null, %cond_true16.i ] ; <int*> [#uses=1]
+ %low.0.i = load int* %low.0.in.i.0 ; <int> [#uses=0]
+ br label %cond_true16.i
+}
+
+void %make_wanted() {
+entry:
+ unreachable
+}
+
+void %get_good_move() {
+entry:
+ ret void
+}
+
+void %main() {
+entry:
+ store int 8, int* %nrow
+ tail call void %make_play( )
+ ret void
+}