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.
