For a better possibility of an assembly implementation of target_clones,
we should not create numbered clones.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

---
 gcc/multiple_target.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c
index 6c0565880c5..b76e54bf924 100644
--- a/gcc/multiple_target.c
+++ b/gcc/multiple_target.c
@@ -166,9 +166,8 @@ create_dispatcher_calls (struct cgraph_node *node)
        }
     }
- symtab->change_decl_assembler_name (node->decl,
-                                     clone_function_name_numbered (
-                                         node->decl, "default"));
+  tree fname = clone_function_name_numbered (node->decl, "default");
+  symtab->change_decl_assembler_name (node->decl, fname);
if (node->definition)
     {
@@ -322,9 +321,8 @@ create_target_clone (cgraph_node *node, bool definition, 
char *name,
       new_node = cgraph_node::get_create (new_decl);
       DECL_ATTRIBUTES (new_decl) = attributes;
       /* Generate a new name for the new version.  */
-      symtab->change_decl_assembler_name (new_node->decl,
-                                         clone_function_name_numbered (
-                                             node->decl, name));
+      tree fname = clone_function_name (node->decl, name);
+      symtab->change_decl_assembler_name (new_node->decl, fname);
     }
   return new_node;
 }
--
2.32.0

Reply via email to