Bug seen with the RH version of gcc (gcc-3.4.4-2.fc3) but Jim Wilson says
he can reproduce this with the FSF gcc-3.4.4.
See Message-ID: <[EMAIL PROTECTED]> on gcc mailing list
and https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=174061
$ gcc -g -O2 -c -DSHOWBUG bug.c
bug.c: In function `bug':
bug.c:18: error: unrecognizable insn:
(insn:HI 15 14 17 0 bug.c:16 (set (reg/f:SI 64)
(const:SI (plus:SI (symbol_ref:SI ("foo") [flags 0x22] )
(const_int 4 [0x4] -1 (nil)
(nil))
bug.c:18: internal compiler error: in extract_insn, at recog.c:2083
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugzilla.redhat.com/bugzilla> for instructions.
The bug is not reproducible, so it is likely a hardware or OS problem.
Version-Release number of selected component (if applicable):
gcc-3.4.4-2.fc3
How reproducible:
Always
Steps to Reproduce:
1. requires -O2
2. requires __thread variable
3. requires builtin memcpy() (using -fno-builtin avoids the bug)
4. requires 2 memcpy() statements
Actual Results: gcc failed
Expected Results: gcc should have succeeded
Additional info:
#include /* memcpy() */
static
#ifdef SHOWBUG
__thread
#endif
int foo[2];
void
bug(void)
{
int bar;
(void) memcpy(&foo[0], &bar, sizeof(bar));
#ifdef SHOWBUG
(void) memcpy(&foo[1], &bar, sizeof(bar));
#endif
}
--
Summary: internal error with __thread and memcpy()
Product: gcc
Version: 3.4.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fcusack at fcusack dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25150