diff options
Diffstat (limited to 'gcc/lto/lto-symtab.c')
-rw-r--r-- | gcc/lto/lto-symtab.c | 7 |
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 |