https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30484
--- Comment #19 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- (In reply to rguent...@suse.de from comment #17) > True. The user could have written the following though: > > int f (int a, int b, int c) > { > return (unsigned)a + b + c; > } This code is incorrect, as based on an implementation-defined behavior. > or alternatively > > int f (int a, int b, int c) > { > return (long)a + b + c; > } This code is incorrect, and it may yield an integer overflow when long = int, e.g. on 32-bit processors.