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



Reply via email to