[arm-gnu] arm-gcc: internal compiler error
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[arm-gnu] arm-gcc: internal compiler error



Hi,

I'm experiencing a problem with CodeSourcery arm-gcc

# cat x.c
void xxx(void) __attribute__((naked,noreturn));
void xxx(void)
{
    unsigned int irqs[2];
    unsigned int idx;

    irqs[0] = *((unsigned int*)0xE0000000);
    irqs[1] = *((unsigned int*)0xE0000004);

    for (idx = 0; idx < 64; idx++)
    {
        if ((irqs[idx >> 5]) & (1 << (idx & 31)))
        {
            idx++;
        }
    }
}

[ This is not my real code but a snippet that reproduces the bug ]

#arm-none-linux-gnueabi-gcc -Wall -march=armv4t -mtune=arm9tdmi -O2 -msoft-float -c -o x.o x.c
x.c: In function 'xxx':
x.c:17: warning: 'noreturn' function does return
x.c:3: internal compiler error: in emit_move_insn, at expr.c:3318
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:https://support.codesourcery.com/GNUToolchain/> for instructions.


I tried many arm-gcc version : arm-none-2008q1, arm-none-2007q3, arm-linux-2008q1 and arm-linux2007q1 IIRC, all have the same problem; it works fine with arm-linux2006-q3.

Looks like the problem does not occur without the "naked" attribute.

Best,

Yann