aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-02-04 09:40:27 +0000
committerDuncan Sands <baldrick@free.fr>2008-02-04 09:40:27 +0000
commit7e7e165acd9ad34d11c9f1daeb026b5f5894932b (patch)
tree711a570b3bb47b83ac7a7644a69f8e98b487c891
parent608f7ae5f7a2268b391c372a35d4fe70920dc49b (diff)
downloadexternal_llvm-7e7e165acd9ad34d11c9f1daeb026b5f5894932b.zip
external_llvm-7e7e165acd9ad34d11c9f1daeb026b5f5894932b.tar.gz
external_llvm-7e7e165acd9ad34d11c9f1daeb026b5f5894932b.tar.bz2
Crashed the new type legalizer. Not likely to catch
any bugs in the future since to get the crash you also need hacked in fake libcall support (which creates odd but legal trees), but since adding it doesn't hurt... Thanks to Chris for this ultimately reduced version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46706 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CodeGen/Generic/2008-01-30-LoadCrash.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/2008-01-30-LoadCrash.ll b/test/CodeGen/Generic/2008-01-30-LoadCrash.ll
new file mode 100644
index 0000000..5eebfcb
--- /dev/null
+++ b/test/CodeGen/Generic/2008-01-30-LoadCrash.ll
@@ -0,0 +1,21 @@
+; RUN: llvm-as < %s | llc
+
+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-f80:32:32"
+target triple = "i686-pc-linux-gnu"
+@letters.3100 = external constant [63 x i8] ; <[63 x i8]*> [#uses=2]
+
+define i32 @mkstemps(i8* %pattern, i32 %suffix_len, i64 %tmp42.rle) nounwind {
+bb20:
+ br label %bb41
+
+bb41: ; preds = %bb20
+ %tmp8182 = trunc i64 %tmp42.rle to i32 ; <i32> [#uses=1]
+ %tmp83 = getelementptr [63 x i8]* @letters.3100, i32 0, i32 %tmp8182 ; <i8*> [#uses=1]
+ %tmp84 = load i8* %tmp83, align 1 ; <i8> [#uses=1]
+ store i8 %tmp84, i8* null, align 1
+ %tmp90 = urem i64 %tmp42.rle, 62 ; <i64> [#uses=1]
+ %tmp9091 = trunc i64 %tmp90 to i32 ; <i32> [#uses=1]
+ %tmp92 = getelementptr [63 x i8]* @letters.3100, i32 0, i32 %tmp9091 ; <i8*> [#uses=1]
+ store i8* %tmp92, i8** null, align 1
+ ret i32 -1
+}