Lvalue casts are evil, I know. Patches welcome. cc: Warning: bytecode.c, line 89: In this statement, the result of the cast "(char ...)*program_code" is used as an lvalue. (char*)*program_code += buflen; --------^ cc: Warning: bytecode.c, line 97: In this statement, the result of the cast "(char ...)*program_code" is used as an lvalue. (char*)*program_code += pad; ----------^ cc: Warning: bytecode.c, line 127: In this statement, the result of the cast "(IV ...)*program_code" is used as an lvalue. ((IV*)*program_code) += len; -----^