aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/ipa-inline-transform.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3cd0538..ab19c52 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2019-12-05 Jan Hubicka <hubicka@ucw.cz>
+ * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local
+
+2019-12-05 Jan Hubicka <hubicka@ucw.cz>
+
* cgraphclones.c (localize_profile): New function.
(cgraph_node::create_clone): Use it for partial profiles.
* common.opt (fprofile-partial-training): New flag.
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c
index 6ec843a..fb2726d 100644
--- a/gcc/ipa-inline-transform.c
+++ b/gcc/ipa-inline-transform.c
@@ -331,6 +331,7 @@ inline_call (struct cgraph_edge *e, bool update_original,
int old_size = 0, new_size = 0;
struct cgraph_node *to = NULL;
struct cgraph_edge *curr = e;
+ bool comdat_local = e->callee->comdat_local_p ();
struct cgraph_node *callee = e->callee->ultimate_alias_target ();
bool new_edges_found = false;
@@ -502,7 +503,7 @@ inline_call (struct cgraph_edge *e, bool update_original,
if (callee->calls_comdat_local)
to->calls_comdat_local = true;
- else if (to->calls_comdat_local && callee->comdat_local_p ())
+ else if (to->calls_comdat_local && comdat_local)
{
struct cgraph_edge *se = to->callees;
for (; se; se = se->next_callee)