I'm getting warnings on this bit of core.ops when compiling with 64-bit ints:
op write(i|ic, i|ic) { INTVAL * i = &($2); /* <<<<---- */ write($1, i, sizeof(INTVAL)); goto NEXT(); } I'm getting a warning that stems from the fact that sizeof(INTVAL) = 8 and sizeof(opcode_t) = 4, so the pointer assignment (marked by the arrow) is not valid/safe (unless I'm missing something). Specifically, this applies to the (i|ic, ic) forms of this op. It'd probably be safer to do something like this: op write(i|ic, i|ic) { INTVAL i = (INTVAL)$2; write($1, &i, sizeof(INTVAL)); goto NEXT(); } So that you can use constants that are up to sizeof(opcode_t) bytes, but after that you're on your own. That raises a question, though: Do we want to move integer constants into the constant table? - D <[EMAIL PROTECTED]>