On 11/10/2017 08:49 AM, Andrew MacLeod wrote:
The IL is comparing
ptr == 0B
and I see:
Type op1 : 0x7fd8e312df18 -> integer(kind=4) (*<T561>) (void)
Type op2 : 0x7fd8e2fa10a8 -> void *
These 2 types fail the types_compatible_p test.
So is this a bug like I think it is?
Andrew
Interesting, in a scratch build I do see it in other places, and its
always with a (void *)0. especially in the __gcov stuff.
Maybe we special case this, or pointers in general, for some reason?
Makefile:915: recipe for target '_gcov_flush.o' failed
make[5]: *** [_gcov_flush.o] Error 1
make[5]: *** Waiting for unfinished jobs....
./gthr-default.h: In function ā__gthread_active_pā:
./gthr-default.h:251:31: internal compiler error: in
gimple_build_assign_1, at gimple.c:459
return __gthread_active_ptr != 0;
~~~~~~~~~~~~~~~~~~~~~^~~~
Incompatible types (in)equality check!
__gthrw___pthread_key_create != 0B
Type op1 : 0x7fa299dca5e8 -> int (*<T8e7>) (pthread_key_t *, void
(*<Te2>) (void *))
Type op2 : 0x7fa299dca738 -> void * const
Andrew