aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-12-08 23:03:36 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-12-08 22:03:36 +0000
commit2b73ad1d1df668f7cfbd352e590a1521a3765e40 (patch)
tree8ace8cb2a092fd97ea457d8e170d9e0c35c011fb /gcc
parent9b21e866825085e069dd2763a702202cb9adeb16 (diff)
downloadgcc-2b73ad1d1df668f7cfbd352e590a1521a3765e40.zip
gcc-2b73ad1d1df668f7cfbd352e590a1521a3765e40.tar.gz
gcc-2b73ad1d1df668f7cfbd352e590a1521a3765e40.tar.bz2
re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)
PR ipa/61886 * lto-cgraph.c (compute_ltrans_boundary): Add transparent alias targets into the boundary. From-SVN: r231430
Diffstat (limited to 'gcc')
-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;