Andreas Karoly
-
2013-06-06
- status: open --> closed
caload pushes the wrong type on the stack. should push I.
JVM 7 Specification:
caload:
"The component of the array at index is retrieved and zero-extended to an int."
Test method:
static char g[] = {0, 1}; char test7(){ return g[23]; }
Corresponding bytecode:
char test7() { 0 getstatic 24; 3 bipush 23; 5 caload; 6 ireturn; }
Type based analysis: test7()C Offset Bytecode Stack before Stack after ---------------------------------------------------------------------------- 0 getstatic <empty> L 3 bipush L L, I 5 caload L, I C 6 ireturn C <empty> Error: Return type mismatched. Expected type: I, type on stack C. ---------------------------------------------------------------------------- Type based analysis completed with Errors/Warning. </empty></empty>