avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] Compiler bug ?


From: E. Weddington
Subject: Re: [avr-gcc-list] Compiler bug ?
Date: Fri, 18 Apr 2003 11:10:54 -0600

On 17 Apr 2003 at 22:57, Marek Michalkiewicz wrote:

> Hi,
> 
> On Thu, Apr 17, 2003 at 10:40:17PM +0400, Denis Chertykov wrote:
> > > > foo.s foo.c: In function `DoDeadBand': foo.c:21: error: unable
> > > > to generate reloads for: (insn:QI 31 28 32 2 006B7390 (set (cc0)
> > > >         (compare (sign_extend:HI (reg/v:QI 24 r24 [42]))
> > > >             (const_int -20 [0xffffffec]))) 94
> > > >             {*cmpqi_sign_extend}
> > > > (nil)
> > > >     (nil))
> > > > foo.c:21: internal compiler error: in find_reloads, at
> > > > gcc/reload.c:3636
> 
> Looks like the second operand of *cmpqi_sign_extend is negatve, so it
> doesn't meet the "M" constraint (value >= 0 && value <= 0xff). It's
> not clear to me why is this insn needed at all - what does it do that
> the second "cmpqi" alternative doesn't already?  Or should a more
> selective predicate be used instead of immediate_operand?
> 
>      An operand whose predicate accepts only constant values is safe
>      provided its constraints include the letter `i'.  If any possible
>      constant value is accepted, then nothing less than `i' will do;
>      if the predicate is more selective, then the constraints may also
>      be more selective.
> 
> > > I'm trying to get a new WinAVR release out this week to address
> > > another compiler bug that was reported on avr-gcc-list earlier.
> > 

Well it looks like the bug is still there in the 20030414 snapshot of 
GCC 3.3. I get the same output as before.

I'm willing to wait for next week's snapshot to see if this can be 
resolved.

Eric


reply via email to

[Prev in Thread] Current Thread [Next in Thread]