re PR ipa/59473 (ice in get_class_context with -O3)

PR ipa/59473
	* ipa-devirt.c (get_class_context): Do not ICE when type is found
	at wrong offset.

From-SVN: r206012
This commit is contained in:
Jan Hubicka 2013-12-16 11:52:48 +01:00 committed by Jan Hubicka
parent e9792e1d9d
commit 3b4e93c358
2 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2013-12-14 Jan Hubicka <jh@suse.cz>
PR ipa/59473
* ipa-devirt.c (get_class_context): Do not ICE when type is found
at wrong offset.
2013-12-16 Jakub Jelinek <jakub@redhat.com>
PR libgomp/58756

View File

@ -848,6 +848,10 @@ get_class_context (ipa_polymorphic_call_context *context,
if (TREE_CODE (type) == TREE_CODE (expected_type)
&& types_same_for_odr (type, expected_type))
{
/* Type can not contain itself on an non-zero offset. In that case
just give up. */
if (offset != 0)
goto give_up;
gcc_assert (offset == 0);
return true;
}