If the LHS of a binary op has a known integer value, it can be translated as a literal in the LHS part of the expression when it is also part of the binary op:
integer i = 1
i = and_bits( i, 0xff )
This is translated as:
/** i = and_bits( i, 0xff )*/
{unsigned long tu;
tu = (unsigned long)1 & (unsigned long)255;
1 = MAKE_UINT(tu);
}
Also affects
or_bits() and
xor_bits().
Fixed translation.