This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/18251] unable to find a register to spill in class `POINTER_REGS'
- From: "eisvogel at seitics dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Apr 2005 16:10:15 -0000
- Subject: [Bug target/18251] unable to find a register to spill in class `POINTER_REGS'
- References: <20041031125117.18251.ralf_corsepius@rtems.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From eisvogel at seitics dot de 2005-04-22 16:10 -------
This bug is AFAICT not fully resolved in 4.0 HEAD as of today. The test case
compiles under 3.4.3, though. The code snippet used to be part of an MD5
transform function but I have stripped it down to the point where it is still
valid C code but does not do anything useful any more. In this state removing
any of the remaining lines usually prevents the ICE from occurring, most notably
the LPM macro (taken from avr-libc HEAD).
$ avr-gcc -Os -mmcu=atmega162 -c test.c
test.c: In function 'test':
test.c:46: error: unable to find a register to spill in class 'POINTER_REGS'
test.c:46: error: this is the insn:
(insn 18 115 20 0 (set (reg/v:SI 56 [ a ])
(mem:SI (post_inc:HI (reg/f:HI 22 r22 [orig:59 D.1226 ] [59])) [2 S4
A8])) 14 {*movsi} (insn_list:REG_DEP_TRUE 115 (nil))
(expr_list:REG_INC (reg/f:HI 22 r22 [orig:59 D.1226 ] [59])
(nil)))
test.c:46: internal compiler error: in spill_failure, at reload1.c:1897
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Compiler version:
$ avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../configure --target=avr --prefix=/home/eisvogel/avr
--enable-languages=c,c++ --disable-nls
Thread model: single
gcc version 4.1.0 20050422 (experimental)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18251