re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519)

PR lto/87957
	* ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations.

From-SVN: r266289
This commit is contained in:
Jan Hubicka 2018-11-20 00:27:10 +01:00 committed by Jan Hubicka
parent 6861fbf6d6
commit 502e897d1a
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2018-11-19 Jan Hubicka <hubicka@ucw.cz>
PR lto/87957
* ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations.
2018-11-19 Sandra Loosemore <sandra@codesourcery.com>
PR driver/50250

View File

@ -2268,11 +2268,13 @@ free_enum_values ()
enum_values_freed = true;
unsigned int i;
for (i = 0; i < odr_types.length (); i++)
if (odr_types[i] && TREE_CODE (odr_types[i]->type) == ENUMERAL_TYPE)
if (odr_types[i])
{
if (TREE_CODE (odr_types[i]->type) == ENUMERAL_TYPE)
TYPE_VALUES (odr_types[i]->type) = NULL;
if (odr_types[i]->types)
for (unsigned int j = 0; j < odr_types[i]->types->length (); j++)
if (TREE_CODE ((*odr_types[i]->types)[j]) == ENUMERAL_TYPE)
TYPE_VALUES ((*odr_types[i]->types)[j]) = NULL;
}
enum_values_freed = true;