summaryrefslogtreecommitdiffstats
path: root/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll')
-rw-r--r--test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll28
1 files changed, 28 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 0000000..ea23c31
--- /dev/null
+++ b/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll
@@ -0,0 +1,28 @@
+; RUN: opt < %s -scalarrepl -disable-output
+
+target datalayout = "E-p:32:32"
+ %struct.rtx_def = type { [2 x i8], i32, [1 x %union.rtunion_def] }
+ %union.rtunion_def = type { i32 }
+
+define void @find_reloads() {
+entry:
+ %c_addr.i = alloca i8 ; <i8*> [#uses=1]
+ switch i32 0, label %return [
+ i32 36, label %label.7
+ i32 34, label %label.7
+ i32 41, label %label.5
+ ]
+label.5: ; preds = %entry
+ ret void
+label.7: ; preds = %entry, %entry
+ br i1 false, label %then.4, label %switchexit.0
+then.4: ; preds = %label.7
+ %tmp.0.i = bitcast i8* %c_addr.i to i32* ; <i32*> [#uses=1]
+ store i32 44, i32* %tmp.0.i
+ ret void
+switchexit.0: ; preds = %label.7
+ ret void
+return: ; preds = %entry
+ ret void
+}
+