http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56265
Martin Jambor <jamborm at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu.org
--- Comment #11 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-04-25
17:27:00 UTC ---
(In reply to comment #8)
>
> Martin, for 4.9 we can probably turn call to NULL into builtin_trap or
> builtin_unreachable (not
> sure if the second is fine, but it would result in better code).
> I wonder however from where the non-NULL constants are comming? Isn't it some
> bug in ipa-prop
> that picks complete garbage? That may be possible wrong code issue...
>
> I will commit patch tomorrow morning.
> Honza
I have looked at all 11 occurrences of these discovered calls to
non-functions and traced these values in the dumped jump functions and
it all seemed legitimate and fine.
Moreover, I have looked at actual IL of functions where the value was
passed in aggregate jump functions and it turned out the aggregate was
a C++ member pointers where one field is overloaded and can hold
either a pointer to a non-virtual method or an index to VMT if the
method is virtual.
So yes, I'm in favor of turning the calls into builtin_trap or
builtin_unreachable. Not sure which one. How do I get their call
graph nodes?