Myles Watson mylesgw@gmail.com writes:
On Tue, Jun 15, 2010 at 4:27 PM, Rudolf Marek r.marek@assembler.cz wrote:
Hi all,
While working on netconsole for ROMCC I noticed following:
int main(void) { /* volatile */ union { unsigned char byte[2]; unsigned short word; } value;
value.byte[1] = 1; }
./build/util/romcc/romcc -mcpu=p2 a.c
a.c:9.18: 0x86bb968 tuple Internal compiler error: tuple used
This case looks familiar.
From this message:
http://www.mail-archive.com/coreboot@coreboot.org/msg22555.html
Looking at the rest fragment that has been passed around I think the actual bug is that romcc allows non-static non-const arrays to be declared. I can not find any indication that I ever added support for this when I wrote romcc.
That would be it.
Unions where you write a value in as one type, and read it out as another type also will not work with romcc.
It does looks like I need a better error check at the declaration of variables, I missed dealing with an array inside a union ick.
Eric