summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2018-01-09 09:22:28 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2018-01-09 08:22:28 +0000
commit6291062f31171ec846ec6d54f1e6c8c5b327bd9d (patch)
tree1e31c7f246360b758e3bd958b126f0e7de4ea760
parent3a123ed751451a4f2aebbe74226fd92272da4477 (diff)
downloadgcc-6291062f31171ec846ec6d54f1e6c8c5b327bd9d.tar.gz
re PR c++/80763 (-O3 causes error: inline clone in same comdat group list)
PR ipa/80763 * ipa-comdats.c (set_comdat_group): Only set comdat group of real symbols; not inline clones. From-SVN: r256369
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-comdats.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 084b0d7e7c8..54703e95316 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-01-09 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/80763
+ * ipa-comdats.c (set_comdat_group): Only set comdat group of real
+ symbols; not inline clones.
+
2018-01-09 Jakub Jelinek <jakub@redhat.com>
PR target/83507
diff --git a/gcc/ipa-comdats.c b/gcc/ipa-comdats.c
index 1940d9d62f5..243756ab0b8 100644
--- a/gcc/ipa-comdats.c
+++ b/gcc/ipa-comdats.c
@@ -211,8 +211,11 @@ set_comdat_group (symtab_node *symbol,
symtab_node *head = (symtab_node *)head_p;
gcc_assert (!symbol->get_comdat_group ());
- symbol->set_comdat_group (head->get_comdat_group ());
- symbol->add_to_same_comdat_group (head);
+ if (symbol->real_symbol_p ())
+ {
+ symbol->set_comdat_group (head->get_comdat_group ());
+ symbol->add_to_same_comdat_group (head);
+ }
return false;
}