https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103961

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-reduction             |

--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
extern __inline 
__attribute__ ((__gnu_inline__))
 int
 sprintf (char *__restrict __s, const char *__restrict __fmt, ...) {
return __builtin___sprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1),
__fmt, __builtin_va_arg_pack ());
}
void cap_to_text(int cmb)
{
        char buf[(23 * ((2) * 32))+100];
        char *p;
        int n, t;
        p = 20 + buf;
        for (t = 8; t--; )
        {
                for (n = 0; n < cmb; n++)
                        p += sprintf(p, "a,");
                p--;
                sprintf(p, "+");
        }
}

When p-- happens, it will always be buf+somesmallvalue.

Reply via email to