- pike/src/docode.c (+53/-20)(73 lines)
- pike/src/opcodes.h (+5/-0)(5 lines)
- pike/src/treeopt.in (+21/-11)(32 lines)
Fixed an issue with the removal of +=
When you did things like a[i++] += 10; the code was (more or less)
converted to a[i++] = [typeof(a)](a[i++]+10); which was not what
you really wanted.
Solved by adding a new opcode that is used for the specific case where
the LHS in the assignment has side effects.
Also, in this somewhat uncommon case automap is now no longer
Note that things like a[i++] = a[i]+b[i] is not using this new opcode,
only += and friends use it.