With gcc 4.0 checked out from CVS at Tue Dec 14 20:32:34 UTC 2004, I got [EMAIL PROTECTED] tmp]$ cat foo.c static int i; int bar; static __thread void *foo [32 / sizeof (void *)] __attribute__ ((tls_model ("initial-exec"))) = { &i, &bar }; void test1 (void) { unsigned int s; for (s = 0; s < sizeof (foo) / sizeof (void *); ++s) { foo [s] = &foo[s]; } } [EMAIL PROTECTED] tmp]$ /usr/gcc-4.0/bin/gcc foo.c -O -S foo.c: In function \uffff\uffff\ufffftest1\uffff\uffff\uffff: foo.c:14: error: unrecognizable insn: (insn 53 21 46 0 (set (reg/f:SI 67 [ D.1152 ]) (const:SI (plus:SI (symbol_ref:SI ("foo") [flags 0x1a] <var_decl 0xb7d5ea6c foo>) (const_int 32 [0x20])))) -1 (nil) (expr_list:REG_EQUAL (const:SI (plus:SI (symbol_ref:SI ("foo") [flags 0x1a] <var_decl 0xb7d5ea6c foo>) (const_int 32 [0x20]))) (nil))) foo.c:14: 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] tmp]$ /usr/gcc-4.0/bin/gcc foo.c -O -S -fPIC foo.c: In function \uffff\uffff\ufffftest1\uffff\uffff\uffff: foo.c:14: error: unrecognizable insn: (insn 56 55 48 0 (set (reg/f:SI 69 [ D.1152 ]) (plus:SI (plus:SI (unspec:SI [ (const_int 0 [0x0]) ] 15) (reg:SI 78)) (const_int 32 [0x20]))) -1 (insn_list:REG_DEP_TRUE 55 (nil)) (expr_list:REG_DEAD (reg:SI 78) (expr_list:REG_EQUAL (const:SI (plus:SI (symbol_ref:SI ("foo") [flags 0x1a] <var_decl 0xb7d5ea6c foo>) (const_int 32 [0x20]))) (nil)))) foo.c:14: 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.
-- Summary: [4.0 regression] ICE with -O and -O -fPIC Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl at lucon dot org CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19000