diff options
Diffstat (limited to 'test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll')
-rw-r--r-- | test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll | 33 |
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..352639a --- /dev/null +++ b/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll @@ -0,0 +1,33 @@ +; RUN: opt < %s -globalopt -disable-output + + %struct._list = type { i32*, %struct._list* } + %struct._play = type { i32, i32*, %struct._list*, %struct._play* } +@nrow = internal global i32 0 ; <i32*> [#uses=2] + +define void @make_play() { +entry: + br label %cond_true16.i + +cond_true16.i: ; preds = %cond_true16.i, %entry + %low.0.in.i.0 = phi i32* [ @nrow, %entry ], [ null, %cond_true16.i ] ; <i32*> [#uses=1] + %low.0.i = load i32* %low.0.in.i.0 ; <i32> [#uses=0] + br label %cond_true16.i +} + +define void @make_wanted() { +entry: + unreachable +} + +define void @get_good_move() { +entry: + ret void +} + +define void @main() { +entry: + store i32 8, i32* @nrow + tail call void @make_play( ) + ret void +} + |