diff options
Diffstat (limited to 'test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll')
-rw-r--r-- | test/Transforms/LevelRaise/2002-07-16-SourceAndDestCrash.ll | 21 |
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 +} |