Commit 257291fc by Jan Hubicka Committed by Martin Liska

re PR lto/65380 ([ICF] LTO: ICE in add_symbol_to_partition_1, at lto/lto-partition.c:158)

Fix PR ipa/65380.

	PR ipa/65380
	* ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
	(sem_variable::merge): Likewise.

From-SVN: r221519
parent e68287df
2015-03-19 Jan Hubicka <hubicka@ucw.cz>
PR ipa/65380
* ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
(sem_variable::merge): Likewise.
2015-03-19 Martin Liska <mliska@suse.cz> 2015-03-19 Martin Liska <mliska@suse.cz>
PR ipa/65465 PR ipa/65465
......
...@@ -814,6 +814,13 @@ sem_function::merge (sem_item *alias_item) ...@@ -814,6 +814,13 @@ sem_function::merge (sem_item *alias_item)
bool original_address_matters = original->address_matters_p (); bool original_address_matters = original->address_matters_p ();
bool alias_address_matters = alias->address_matters_p (); bool alias_address_matters = alias->address_matters_p ();
if (DECL_EXTERNAL (alias->decl))
{
if (dump_file)
fprintf (dump_file, "Not unifying; alias is external.\n\n");
return false;
}
if (DECL_NO_INLINE_WARNING_P (original->decl) if (DECL_NO_INLINE_WARNING_P (original->decl)
!= DECL_NO_INLINE_WARNING_P (alias->decl)) != DECL_NO_INLINE_WARNING_P (alias->decl))
{ {
...@@ -1776,6 +1783,13 @@ sem_variable::merge (sem_item *alias_item) ...@@ -1776,6 +1783,13 @@ sem_variable::merge (sem_item *alias_item)
return false; return false;
} }
if (DECL_EXTERNAL (alias_item->decl))
{
if (dump_file)
fprintf (dump_file, "Not unifying; alias is external.\n\n");
return false;
}
sem_variable *alias_var = static_cast<sem_variable *> (alias_item); sem_variable *alias_var = static_cast<sem_variable *> (alias_item);
varpool_node *original = get_node (); varpool_node *original = get_node ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment