aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll')
-rw-r--r--test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll b/test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll
new file mode 100644
index 0000000..296e9e1
--- /dev/null
+++ b/test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll
@@ -0,0 +1,21 @@
+; This testcase, which was distilled from a HUGE function, causes problems
+; because both the source and the destination of the %Y cast are converted
+; to a new type, which causes massive problems.
+
+; RUN: as < %s | opt -raise -raise-start-inst=W
+
+int **%test(sbyte **%S) {
+BB0:
+ br label %Loop
+
+Loop:
+ %X = phi sbyte* [null , %BB0], [%Z, %Loop]
+
+ %Y = cast sbyte *%X to sbyte **
+ %Z = load sbyte** %Y
+ br bool true, label %Loop, label %Out
+
+Out:
+ %W = cast sbyte** %Y to int**
+ ret int** %W
+}