I'm getting an internal compiler error on the following test program:
void func(int a, int b, int c, int d, int e, int f, int g, short int h)
{
assert(a < 100);
assert(b < 100);
assert(c < 100);
assert(d < 100);
assert(e < 100);
assert(f < 100);
assert(g < 100);
assert((-1000 < h) && (h < 0));
}
Command line and output:
$ arm-none-eabi-gcc -mthumb -O2 -c -o test.o test.c
test.c: In function 'func':
test.c:11:1: internal compiler error: in default_secondary_reload, at
targhooks.c:769
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://support.codesourcery.com/GNUToolchain/> for instructions.
This is running on Windows XP. Version information:
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc.exe (Sourcery G++ Lite 2010.09-51) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>From playing around with this, it looks to be some kind of register
allocation problem--it needs to have lots of variables active at once,
and the error doesn't occur unless I'm compiling for Thumb.
Unfortunately I don't have a way to test this on tips, so I can't tell
if it's been fixed there or not. Any information on this would be
appreciated.
Thanks,
Matt