aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-12-14 17:23:20 +0000
committerChris Lattner <sabre@nondot.org>2005-12-14 17:23:20 +0000
commitfa1fb11cdc92bd95d94353e44c217e76d4aa2db1 (patch)
tree9ecc4fbcc45d70602fc2da84aef54df52bbcc9a0
parent00cb95c9bef6b4d96994112422d9d66679dfe986 (diff)
new (undefined) testcase, distilled from 126.gcc that scalarrepl crashes on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24707 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll b/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll
new file mode 100644
index 0000000000..647311bae4
--- /dev/null
+++ b/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll
@@ -0,0 +1,34 @@
+; RUN: llvm-as < %s | opt -scalarrepl -disable-output
+target endian = big
+target pointersize = 32
+ %struct.rtx_def = type { [2 x ubyte], int, [1 x %union.rtunion_def] }
+ %union.rtunion_def = type { uint }
+
+implementation ; Functions:
+
+void %find_reloads() {
+entry:
+ %c_addr.i = alloca sbyte ; <sbyte*> [#uses=1]
+ switch uint 0, label %return [
+ uint 36, label %label.7
+ uint 34, label %label.7
+ uint 41, label %label.5
+ ]
+
+label.5: ; preds = %entry
+ ret void
+
+label.7: ; preds = %entry, %entry
+ br bool false, label %then.4, label %switchexit.0
+
+then.4: ; preds = %label.7
+ %tmp.0.i = cast sbyte* %c_addr.i to int* ; <int*> [#uses=1]
+ store int 44, int* %tmp.0.i
+ ret void
+
+switchexit.0: ; preds = %label.7
+ ret void
+
+return: ; preds = %entry
+ ret void
+}