https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88479
--- Comment #5 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- (In reply to jos...@codesourcery.com from comment #4) > If you want to do modulo arithmetic on signed values, the idiom (in > common-usage C which supports conversions to signed integer types as being > modulo) is to convert to unsigned, do arithmetic on unsigned and convert > back to signed. The conversion back to signed can be done without involving the implementation-defined behavior, e.g. with a macro that consider the two cases. This is much better as the conversion is explicit.