https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114374
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-03-18 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 CC| |pinskia at gcc dot gnu.org --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. For some reason doing changing `loop++` to what it does manually does not warn: That is for ``` void f() { char buf[11]; int loop(1); do { __builtin_snprintf(buf,sizeof(buf),"%d",loop++); } while(loop<10); } void g() { char buf[11]; int loop(1); do { int old = loop; loop++; __builtin_snprintf(buf,sizeof(buf),"%d",old); } while(loop<10); } ``` f is being warned about but g is not.