https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78188
--- Comment #14 from David Edelsohn <dje at gcc dot gnu.org> --- Honza suggested Index: varasm.c =================================================================== --- varasm.c (revision 241793) +++ varasm.c (working copy) @@ -6036,7 +6036,8 @@ #ifdef MAKE_DECL_ONE_ONLY MAKE_DECL_ONE_ONLY (decl); #endif - symbol->set_comdat_group (comdat_group); + if (HAVE_COMDAT_GROUP) + symbol->set_comdat_group (comdat_group); } else if (VAR_P (decl) && (DECL_INITIAL (decl) == 0 Index: ipa-comdats.c =================================================================== --- ipa-comdats.c (revision 241793) +++ ipa-comdats.c (working copy) @@ -210,6 +210,7 @@ { symtab_node *head = (symtab_node *)head_p; + gcc_assert (HAVE_COMDAT_GROUP || head_p == NULL); gcc_assert (!symbol->get_comdat_group ()); symbol->set_comdat_group (head->get_comdat_group ()); symbol->add_to_same_comdat_group (head); I bootstrapped and tested both trunk with the patch, and 6-branch with the patch and Richi's backported tree-ssa-sccvn.c patch. The good news is 6-branch bootstraps with the above patch and a backport of Richi's patch, so COMDAT is the cause. The bad news, as one can see from the published test results, is testsuite carnage -- ugly, ugly, ugly. Hundreds of new failures in C, C++ and libstdc++. Apparently something needs COMDAT groups, although it doesn't fully function on AIX. I will try again without the COMDAT patch and gating ipa-comdats on HAVE_COMDAT_GROUP.