I'm running into an ICE in the GIMPLE phase, for gcc.c-torture/compile/386.c,
on pdp11 -mint32. That's an oddball where int is 32 bits (due to the flag) but
Pmode is 16 bits (HImode).
The ICE message is:
../../gcc/gcc/testsuite/gcc.c-torture/compile/386.c: In function ‘main’:
../../gcc/gcc/testsuite/gcc.c-torture/compile/386.c:24:1: error: invalid types
in nop conversion
}
^
int
int *
b_3 = (int) &i;
during GIMPLE pass: einline
../../gcc/gcc/testsuite/gcc.c-torture/compile/386.c:24:1: internal compiler
error: verify_gimple failed
The offending code snippet is (I think):
main ()
{
int i;
foobar (i, &i);
}
foobar (a, b)
{
int c;
c = a % b;
a = a / b;
return a + b;
}
where the foobar(i, &i) call passes an int* to a (defaulted) int function
parameter. Is there an assumption that sizeof (int*) >= sizeof(int)?
Any idea where to look? It only shows up with -mint32; if int is 16 bits all
is well. I'm not used to my target breaking things before I even get to RTL...
paul