aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto/lto-symtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/lto/lto-symtab.c')
-rw-r--r--gcc/lto/lto-symtab.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c
index 2fd5b1e8f49..8dfae627782 100644
--- a/gcc/lto/lto-symtab.c
+++ b/gcc/lto/lto-symtab.c
@@ -69,6 +69,13 @@ lto_cgraph_replace_node (struct cgraph_node *node,
if (node->definition && prevailing_node->definition
&& DECL_COMDAT (node->decl) && DECL_COMDAT (prevailing_node->decl))
prevailing_node->merged_comdat = true;
+ else if ((node->definition || node->body_removed)
+ && DECL_DECLARED_INLINE_P (node->decl)
+ && DECL_EXTERNAL (node->decl)
+ && prevailing_node->definition)
+ prevailing_node->merged_extern_inline = true;
+ prevailing_node->merged_comdat |= node->merged_comdat;
+ prevailing_node->merged_extern_inline |= node->merged_extern_inline;
/* Redirect all incoming edges. */
compatible_p