diff options
author | Chris Lattner <sabre@nondot.org> | 2007-11-09 17:33:02 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-11-09 17:33:02 +0000 |
commit | 7ebafca2adebb83d1d1d310a35f57494b5a4e4d7 (patch) | |
tree | 9a7dca11ee1b0ed9e39b6f2fe90b4a3f1521b380 /test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll | |
parent | d98e5975ec4bff452d97a961be8e442aba1882ee (diff) | |
download | external_llvm-7ebafca2adebb83d1d1d310a35f57494b5a4e4d7.zip external_llvm-7ebafca2adebb83d1d1d310a35f57494b5a4e4d7.tar.gz external_llvm-7ebafca2adebb83d1d1d310a35f57494b5a4e4d7.tar.bz2 |
Tighten up a check for folding away loads from (newly constant) globals. This
fixes a crash on Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll and
rdar://5585488.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43949 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll')
-rw-r--r-- | test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll b/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll new file mode 100644 index 0000000..0d7d036 --- /dev/null +++ b/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll @@ -0,0 +1,19 @@ +; RUN: llvm-as < %s | opt -globalopt -disable-output +target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128" +target triple = "powerpc-apple-darwin8" + %struct.empty0 = type { } + %struct.es = type { %struct.empty0 } + %struct.es1 = type { %struct.empty0 } +@aaui1 = internal global [6 x [2 x i32]] [ [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ] ] ; <[6 x [2 x i32]]*> [#uses=1] +@aaui0 = internal global [0 x [2 x i32]] zeroinitializer ; <[0 x [2 x i32]]*> [#uses=1] + +define i8 @func() { +entry: + %tmp10 = getelementptr [2 x i32]* getelementptr ([6 x [2 x i32]]* @aaui1, i32 0, i32 0), i32 5, i32 1 ; <i32*> [#uses=1] + %tmp11 = load i32* %tmp10, align 4 ; <i32> [#uses=1] + %tmp12 = call i32 (...)* @func3( i32* null, i32 0, i32 %tmp11 ) ; <i32> [#uses=0] + ret i8 undef +} + +declare i32 @func3(...) + |