https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121928
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The old code just does *mem += val with both values having type int, while the new code does the arithmetic in unsigned and assigns back to the int. But apart from one being well-defined for all values (no signed overflows) they're equivalent.
