Nathan Sidwell wrote:
Sanjiv Kumar Gupta wrote:
calculated by linker. Now add r1, foo add r1, 10 add r1, -10 are okay but add r1, foo + 10 add r1, -10 are not, since (foo + 10) may overflow during relocation, so the value (foo + 10) && 0xff inserted by linker is not correct.
What is stopping the value of 'foo' itself being > 255?
nathan
Programmer will get an overflow error for that during linking.
But the problem here is that with foo = 255, the code works without -O2, but not with -O2, which looks strange. Since -O2 (CSE) combines add r1, foo add r1, 10 to add r1, foo + 10
Thanks. --Sanjiv
