https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123960

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Szymon Tarnowski from comment #5)
> Do you mean in code like "ptr = memory + -((unsigned int)*ptr)"
> "-((unsigned int)*ptr)" has unsigned value 0xFFFFFFFF which is promoted to
> 0x00000000_FFFFFFFF before adding?
> 
> But in case of ptr = memory - ((unsigned int)*ptr), it is 0x00000001 which
> is promoted to 0x00000000_00000001 and substracted?

Correct.

Reply via email to