On Wed, Jul 31, 2013 at 5:35 AM, Jens Mehler <jens.mehler@xxxxxxxxxx> wrote: > After testing around I came up with a much easier example to reproduce my > error: > > static unsigned char sbox[256]; > > void > test(void) > { > int n; > for (n = 0; n < 256; n++) > sbox[n] = (unsigned char) n; > } > > This results in the same error massage: > test3.c: In function 'test': > test3.c:4:1: internal compiler error: in gen_lowpart_general, at > rtlhooks.c:59 > > Via GDB I was able to print the RTX in question: > As you can see the code is SYMBOL_REF and therefore the error. > I am not really sure how to track that any futher. You need to find out what is asking for the low part of a SYMBOL_REF. Some targets can not load a symbol into a register. Those target break up the SYMBOL_REF in some form, typically into a PLUS of a HIGH and a LO_SUM. For example, the MIPS backend works this way. You may need to do something similar. Ian