diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto-cgraph.c | 9 |
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; |