[Bug middle-end/52939] [4.7/4.8 Regression] ice in gimple_get_virt_method_for_binfo with -O3
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 13 09:59:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52939
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-04-13 09:58:44 UTC ---
(In reply to comment #3)
> Created attachment 27143 [details]
> Simple testcase
>
> This should be a simpler testcase. What happens is that we are
> attempting to devirtualize call to a virtual method introduced in a
> descendant but with an ancestor which does not have it. I suppose
> this is OK if the call is never executed in run-time.
>
> Dealing with this situation in gimple_get_virt_method_for_binfo would
> be easy, but perhaps we want fold_ctor_reference to return NULL is it
> is requested to fold an expression from beyond the provided
> constructor?
Well, if we know what the size of the constructor target is, yes. Otherwise
all non-initialized parts are implicitely initialized to zero.
Thus, you need to handle this case in gimple_get_virt_method_for_binfo
anyway (fails are always better than asserts ...)
More information about the Gcc-bugs
mailing list