https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109979
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2023-05-26 Ever confirmed|0 |1 --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. This is the usual "we don't warn when we know nothing" vs. "we warn if we know a tiny bit" vs. "we have a very good idea" case. From e - 1 we know the range passed does not include INT_MAX so we warn. For 'e' we know nothing so we don't - as Andrew says we probably should diagnose this. If you know the value is in a range that fits s[4] then assert that before the prints.