https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
--- Comment #24 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to baoshan from comment #23) > I have seen two places that would convert "A-1" to "A+(-1)", and due the > type is unsigned int, it would be converted to "A+4294967295". This looks > not right to me. Why wrapping is well defined for unsigned types so adding 4294967295 is the same as subtracting by 1.