[Bug middle-end/59409] [4.9 Regression] 253.perlbmk in SPEC CPU 2K is miscompiled
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Dec 8 21:50:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59409
--- Comment #16 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #15)
> This
>
> char *
> my_bcopy(register char *from,register char *to,register I32 len)
> {
> char *retval = to;
>
> if (from - to >= 0) {
> while (len--)
> *to++ = *from++;
> }
> else {
> to += len;
> from += len;
> while (len--)
> *(--to) = *(--from);
> }
> return retval;
> }
>
> may be miscompiled.
With LTO, it is inlined. We got len == -1:
(gdb) bt
#0 Perl_my_bcopy (len=-1, to=0xf7fd803c "\260Vx", from=<optimized out>) at
util.c:1559
#1 Perl_pp_rv2av () at pp_hot.c:474
#2 0x004e6ac6 in Perl_runops_standard () at run.c:30
#3 0x004339fc in perl_run (sv_interp=<optimized out>) at perl.c:1100
#4 0x0040348b in main (argc=9, argv=<optimized out>, env=<optimized out>)
at unix_perlmain.c:51
(gdb)
Should len == -1 here?
More information about the Gcc-bugs
mailing list