--- Comment #2 from charles at chaoslizard dot org 2009-01-24 21:43 ---
As with #34299, if you move the __attribute__s to the function's prototype
(creating one if necessary) and remove them from the definition, the ICE goes
away.
--
http://gcc.gnu.org/bugzilla/show_bug.c
ir.length > 0 )
{
inpos = data[4];
r = 0xff;
}
else
{
data[0] = 0;
r = 1;
}
__asm__ __volatile__ ("sei" ::);
}
if ( req == LCD_INSTR )
{
(*(volatile uint8_t *)((0x18) + 0x20)) &= ~ (1 << 4);
}
if ( req == LCD_DATA )
{
(*(volatile uint8_t *)((0x18) + 0x20)) |= (1 << 4);
}
return r;
}
extern byte_t usb_in ( byte_t* data, byte_t len )
{
byte_t n;
byte_t max;
max = ir.length + 3;
n = 0;
while ( n < len )
{
if ( inpos >= max )
{
__asm__ __volatile__ ("cli" ::);
if ( edges )
{
edges = 0xff;
}
inpos = 0xff;
__asm__ __volatile__ ("sei" ::);
break;
}
data[n++] = (& ir.length)[inpos++];
}
return n;
}
extern void usb_out ( byte_t* data, byte_t len )
{
while ( len )
{
lcd_write( *data++ );
len--;
}
}
__attribute__((naked))
extern int main ( void )
{
(*(volatile uint8_t *)((0x12) + 0x20)) |= (1 << (3));
(*(volatile uint8_t *)((0x11) + 0x20)) |= (1 << (3));
lcd_init();
usb_init();
ir_init();
for ( ;; )
{
usb_poll();
}
return 0;
}
--
Summary: AVR-GCC: internal compiler error: in start_function, at
c-decl.c:6248
Product: gcc
Version: 4.3.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: charles at chaoslizard dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38954