diff options
-rw-r--r-- | test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll b/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll index 74d580489a..8708d86b9a 100644 --- a/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll +++ b/test/Transforms/LevelRaise/2002-05-23-MissedRaise.ll @@ -6,9 +6,17 @@ %FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint } uint %addfile(%FILE* %f) { - %cast255 = cast %FILE* %f to sbyte* ; <sbyte*> [#uses=1] - %reg2421 = getelementptr sbyte* %cast255, long 24 ; <sbyte*> [#uses=1] - %reg130 = load sbyte* %reg2421 ; <sbyte> [#uses=1] - %cast250 = cast sbyte %reg130 to uint ; <uint> [#uses=1] + %cast255 = cast %FILE* %f to sbyte* + + ; Addreses a ubyte member in memory... + %reg2421 = getelementptr sbyte* %cast255, long 24 + + ; Loads the ubyte + %reg130 = load sbyte* %reg2421 + + ; Error, cast cannot convert the source operand to ubyte because then + ; the sign extension would not be performed. Need to insert a cast. + ; + %cast250 = cast sbyte %reg130 to uint ; This is a sign extension instruction ret uint %cast250 } |