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