https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64988

--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The problem here is that inliner dissolves comdat group it should not.
We inline comdat local function and the fact we can remove it from program does
not mean we can dissolve the group.

I am testing:
Index: ipa-inline-transform.c
===================================================================
--- ipa-inline-transform.c      (revision 221092)
+++ ipa-inline-transform.c      (working copy)
@@ -213,7 +213,7 @@ clone_inlined_nodes (struct cgraph_edge
             For now we keep the ohter functions in the group in program until
             cgraph_remove_unreachable_functions gets rid of them.  */
          gcc_assert (!e->callee->global.inlined_to);
-         e->callee->dissolve_same_comdat_group_list ();
+         e->callee->remove_from_same_comdat_group ();
          if (e->callee->definition
              && inline_account_function_p (e->callee))
            {

Reply via email to