aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lto-cgraph.c9
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 55f89c9..4ee6a32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,12 @@
2015-12-08 Jan Hubicka <hubicka@ucw.cz>
PR ipa/61886
+ * lto-cgraph.c (compute_ltrans_boundary): Add transparent alias targets
+ into the boundary.
+
+2015-12-08 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/61886
* varpool.c (varpool_node::get_availability): Recurse only on
weakrefs with definition in the target.
(symbol_table::remove_unreferenced_decls): Keep aliases in the boundary.
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index e1c2595..62e5454 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -972,6 +972,15 @@ compute_ltrans_boundary (lto_symtab_encoder_t in_encoder)
if (cnode
&& cnode->thunk.thunk_p)
add_node_to (encoder, cnode->callees->callee, false);
+ while (node->transparent_alias && node->analyzed)
+ {
+ node = node->get_alias_target ();
+ if (is_a <cgraph_node *> (node))
+ add_node_to (encoder, dyn_cast <cgraph_node *> (node),
+ false);
+ else
+ lto_symtab_encoder_encode (encoder, node);
+ }
}
lto_symtab_encoder_delete (in_encoder);
return encoder;