[En-Nut-Discussion] Compiler Error

Curtis Maloney cmaloney at cardgate.net
Tue Feb 8 23:59:07 CET 2005


Ole Reinhardt wrote:
> arpcache.c:487: error: unable to find a register to spill in class
> `POINTER_REGS'
> arpcache.c:487: error: this is the insn:
> (insn 90 207 206 5 (parallel [
>             (set (mem:BLK (reg/v/f:HI 44 [ mac ]) [0 A8])
>                 (mem:BLK (reg/v/f:HI 28 r28 [orig:46 entry ] [46]) [0
> A8]))
>             (use (reg:QI 24 r24 [60]))
>             (use (const_int 1 [0x1]))
>             (clobber (scratch:HI))
>             (clobber (scratch:HI))
>             (clobber (scratch:QI))
>         ]) 16 {*movstrqi_insn} (insn_list 87 (insn_list 89 (nil)))
>     (expr_list:REG_DEAD (reg:QI 24 r24 [60])
>         (expr_list:REG_DEAD (reg/v/f:HI 44 [ mac ])
>             (expr_list:REG_UNUSED (scratch:QI)
>                 (expr_list:REG_UNUSED (scratch:HI)
>                     (expr_list:REG_UNUSED (scratch:HI)
>                         (nil)))))))
> 
> For me it seems like a fatal internal error of avr-gcc. I'm using the
> latest Debian unstable avr-gcc package: avr-gcc (GCC) 3.4.3

This certainly is.  That's the back end crapping out because it can't work out 
how to organise the registers, etc, to handle that work.  I'd recommend you 
pare down your code into a small test case to provoke it, and submit this as a 
GCC bug.

That being said, there are a number of people already working on fixing that 
area of GCC for the 4.1 release (too big a change to make it into 4.0, which 
is due out next month).

--
Curtis Maloney
cmaloney at cardgate.net



More information about the En-Nut-Discussion mailing list