Index: compilers/imcc/imcc.y =================================================================== --- compilers/imcc/imcc.y (revision 47282) +++ compilers/imcc/imcc.y (working copy) @@ -568,13 +568,23 @@ { ASSERT_ARGS(func_ins) int i; + Instruction *ins; + /* shift regs up by 1 */ for (i = n - 1; i >= 0; --i) r[i+1] = r[i]; r[0] = lhs; + /* shift keyvec */ keyv <<= 1; - return INS(interp, unit, op, "", r, n+1, keyv, emit); + + ins = INS(interp, unit, op, "", r, n+1, keyv, emit); + + /* check that 'assigned' register isn't treated as an input by the op */ + if (ins->flags & 1) + IMCC_warning(interp, "assignment form used for input argument to `%s'\n", op); + + return ins; } /*