------- Additional Comments From hjl at lucon dot org 2004-12-15 20:08 -------
Something is very strange:
[EMAIL PROTECTED] thread]$ cat do.c
extern __thread void *foo [];
void
test1 (void)
{
int s;
for (s = 0; s < 2; ++s)
{
foo [s] = &foo[s];
}
}
[EMAIL PROTECTED] thread]$ /export/build/gnu/gcc/build-i686-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-i686-linux/gcc/ -O -S do.c
do.c: In function \uffff\uffff\ufffftest1\uffff\uffff\uffff:
do.c:10: error: unrecognizable insn:
(insn 53 21 46 0 (set (reg/f:SI 67 [ D.1151 ])
(const:SI (plus:SI (symbol_ref:SI ("foo") [flags 0x58] <var_decl
0xb7d5e828 foo>)
(const_int 8 [0x8])))) -1 (nil)
(expr_list:REG_EQUAL (const:SI (plus:SI (symbol_ref:SI ("foo") [flags 0x58]
<var_decl 0xb7d5e828 foo>)
(const_int 8 [0x8])))
(nil)))
do.c:10: internal compiler error: in extract_insn, at recog.c:2020
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
[EMAIL PROTECTED] thread]$ cat do.c extern __thread void *foo [];
void
test1 (void)
{
int s;
for (s = 0; s < 2U; ++s)
{
foo [s] = &foo[s];
}
}
[EMAIL PROTECTED] thread]$ /export/build/gnu/gcc/build-i686-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-i686-linux/gcc/ -O -S do.c
"2U" vs. "2" makes a big difference here.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18910