This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ICE in a testcase, not sure about solution
- From: Paul Koning <paulkoning at comcast dot net>
- To: GCC Development <gcc at gcc dot gnu dot org>
- Date: Wed, 20 Jun 2018 14:26:35 -0400
- Subject: ICE in a testcase, not sure about solution
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