diff options
Diffstat (limited to 'test/Transforms/ScalarRepl/badarray.ll')
-rw-r--r-- | test/Transforms/ScalarRepl/badarray.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Transforms/ScalarRepl/badarray.ll b/test/Transforms/ScalarRepl/badarray.ll new file mode 100644 index 0000000000000..c48848630564b --- /dev/null +++ b/test/Transforms/ScalarRepl/badarray.ll @@ -0,0 +1,20 @@ +; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | not grep alloca +; PR3466 + +define i32 @test() { + %X = alloca [4 x i32] ; <[4 x i32]*> [#uses=1] + ; Off end of array! + %Y = getelementptr [4 x i32]* %X, i64 0, i64 6 ; <i32*> [#uses=2] + store i32 0, i32* %Y + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z +} + + +define i32 @test2() nounwind { +entry: + %yx2.i = alloca float, align 4 ; <float*> [#uses=1] + %yx26.i = bitcast float* %yx2.i to i64* ; <i64*> [#uses=1] + %0 = load i64* %yx26.i, align 8 ; <i64> [#uses=0] + unreachable +} |