12441 – [3.3 Regression] Can't spill register bug (original) (raw)

andreas@meo-dipt:~/gd/build/common/format$ gcc --version gcc (GCC) 3.3.2 20030908 (Debian prerelease) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

andreas@meo-dipt:~/gd/build/common/format$ gcc -O2 -c gcc-bug.c gcc-bug.c: In function formatZformatZbuf_format_integer_METH_INT_next_digit': gcc-bug.c:148: error: unable to find a register to spill in class Q_REGS' gcc-bug.c:148: error: this is the insn: (insn:HI 381 379 388 12 0x4001a790 (set (mem:QI (plus:SI (plus:SI (subreg:SI (reg/v:DI 88) 4) (subreg:SI (reg/v:DI 89) 0)) (const_int 16 [0x10])) [0 S1 A8]) (subreg:QI (reg/v:SI 4 esi [84]) 0)) 47 {*movqi_1} (nil) (expr_list:REG_DEAD (reg/v:DI 89) (expr_list:REG_DEAD (reg/v:DI 88) (expr_list:REG_DEAD (reg/v:SI 4 esi [84]) (nil))))) gcc-bug.c:148: confused by earlier errors, bailing out

The file in question can be found at http://www.gwydiondylan.org/~andreas/gcc-bug.c

Comment 2 Drea Pinski 2003-09-29 15:47:49 UTC

I can confirm this on the mainline (20030929) and 3.3.1 (20030707). This code did not produce an ICE in 3.2.3. From Phil's regression hunter: Search converges between 2002-05-26-trunk (#79) and 2002-06 -02-trunk (#80).

Comment 3 Mark Mitchell 2003-10-16 09:35:02 UTC

Postponed until GCC 3.3.3.

Comment 4 roger 2003-12-07 05:53:24 UTC

For mainline, -fnew-ra may be used as a work-around.

Comment 5 Eric Botcazou 2003-12-12 08:34:50 UTC

I think that reload problems of this kind are not safely fixable on a release branch.

Comment 6 Drea Pinski 2003-12-30 17:41:00 UTC

*** Bug 13514 has been marked as a duplicate of this bug. ***

Comment 10 Drea Pinski 2004-01-09 16:52:23 UTC

Fixed also for 3.3.3.

Comment 11 Eric Botcazou 2004-01-09 16:57:49 UTC

Not yet.

Comment 13 Drea Pinski 2004-01-12 14🔞37 UTC

Fixed now for 3.3.3.