Commit ced7e958 by Jan Hubicka Committed by Jan Hubicka

re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)


	PR ipa/61886
	* ipa-visibility.c (can_replace_by_local_alias): Look through transparent
	aliaes; refuse weakrefs.
	(update_visibility_by_resolution_info): Skip transparent aliases in the
	analysis part

From-SVN: r231428
parent 54f97f90
2015-12-08 Jan Hubicka <hubicka@ucw.cz>
PR ipa/61886
* ipa-visibility.c (can_replace_by_local_alias): Look through transparent
aliaes; refuse weakrefs.
(update_visibility_by_resolution_info): Skip transparent aliases in the
analysis part
2015-12-08 Jan Hubicka <hubicka@ucw.cz>
PR ipa/61886
* symtab.c (symtab_node::verify_base): Fix thinko in a conditional.
(symtab_node::noninterposable_alias): Do not accept transparent
aliases.
......@@ -332,6 +332,13 @@ varpool_node::externally_visible_p (void)
bool
can_replace_by_local_alias (symtab_node *node)
{
/* Weakrefs have a reason to be non-local. Be sure we do not replace
them. */
while (node->transparent_alias && node->definition && !node->weakref)
node = node->get_alias_target ();
if (node->weakref)
return false;
return (node->get_availability () > AVAIL_INTERPOSABLE
&& !decl_binds_to_current_def_p (node->decl)
&& !node->can_be_discarded_p ());
......@@ -392,7 +399,7 @@ update_visibility_by_resolution_info (symtab_node * node)
for (symtab_node *next = node->same_comdat_group;
next != node; next = next->same_comdat_group)
{
if (!next->externally_visible)
if (!next->externally_visible || next->transparent_alias)
continue;
bool same_def
......
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