https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68067
Joseph S. Myers <jsm28 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |NEW Last reconfirmed| |2015-10-23 Resolution|INVALID |--- Ever confirmed|0 |1 --- Comment #3 from Joseph S. Myers <jsm28 at gcc dot gnu.org> --- I don't think this is undefined. b is INT_MIN, a valid value of type int. b - c is also INT_MIN, again no overflow. And a - (b - c) is -1 - INT_MIN, a valid subtraction whose value is within range. a + (c - b) would indeed be undefined, but that's not what the source code has.