[forwarded from http://bugs.debian.org/349268] gcc version 4.0.2 (Debian 4.0.2-2) falk@pergolesi:~% cat test.c extern int x[]; static int **STACK; static void get_block() { while (1) STACK[0] = x + (1L << 48); } falk@pergolesi:~% gcc -c test.c falk@pergolesi:~% gcc -c test.c -O falk@pergolesi:~% gcc -c test.c -O -fPIC test.c: In function 'get_block': test.c:7: error: unrecognizable insn: (insn 34 33 30 0 (set (reg/f:DI 59) (plus:DI (reg:DI 61) (const_int 1125899906842624 [0x4000000000000]))) -1 (insn_list:REG_DEP_TRUE 33 (nil)) (expr_list:REG_DEAD (reg:DI 61) (expr_list:REG_EQUAL (const:DI (plus:DI (symbol_ref:DI ("x") [flags 0x40] <var_decl 0x2a959a7ea0 x>) (const_int 1125899906842624 [0x4000000000000]))) (nil)))) test.c:7: 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.
I thought I saw a related bug to this before.
And that was PR 24683. Isn't this fixed in 4.0.3?
It still fails as of 20051209.
Confirmed, still fails as of 20060225.
Still fails as of today.
Fixed in GCC-4.1.0