%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
}