aboutsummaryrefslogtreecommitdiff
path: root/gcc/multiple_target.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-09-13 10:37:49 -0700
committerIan Lance Taylor <iant@golang.org>2021-09-13 10:37:49 -0700
commite252b51ccde010cbd2a146485d8045103cd99533 (patch)
treee060f101cdc32bf5e520de8e5275db9d4236b74c /gcc/multiple_target.c
parentf10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff)
parent104c05c5284b7822d770ee51a7d91946c7e56d50 (diff)
downloadgcc-e252b51ccde010cbd2a146485d8045103cd99533.zip
gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz
gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'gcc/multiple_target.c')
-rw-r--r--gcc/multiple_target.c43
1 files changed, 22 insertions, 21 deletions
diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c
index e419265..28d5f95 100644
--- a/gcc/multiple_target.c
+++ b/gcc/multiple_target.c
@@ -166,21 +166,23 @@ create_dispatcher_calls (struct cgraph_node *node)
}
}
- symtab->change_decl_assembler_name (node->decl,
- clone_function_name_numbered (
- node->decl, "default"));
-
- /* FIXME: copy of cgraph_node::make_local that should be cleaned up
- in next stage1. */
- node->make_decl_local ();
- node->set_section (NULL);
- node->set_comdat_group (NULL);
- node->externally_visible = false;
- node->forced_by_abi = false;
- node->set_section (NULL);
-
- DECL_ARTIFICIAL (node->decl) = 1;
- node->force_output = true;
+ tree fname = clone_function_name (node->decl, "default");
+ symtab->change_decl_assembler_name (node->decl, fname);
+
+ if (node->definition)
+ {
+ /* FIXME: copy of cgraph_node::make_local that should be cleaned up
+ in next stage1. */
+ node->make_decl_local ();
+ node->set_section (NULL);
+ node->set_comdat_group (NULL);
+ node->externally_visible = false;
+ node->forced_by_abi = false;
+ node->set_section (NULL);
+
+ DECL_ARTIFICIAL (node->decl) = 1;
+ node->force_output = true;
+ }
}
/* Return length of attribute names string,
@@ -306,9 +308,9 @@ create_target_clone (cgraph_node *node, bool definition, char *name,
if (definition)
{
- new_node = node->create_version_clone_with_body (vNULL, NULL,
- NULL, NULL,
- NULL, name, attributes);
+ new_node
+ = node->create_version_clone_with_body (vNULL, NULL, NULL, NULL, NULL,
+ name, attributes, false);
if (new_node == NULL)
return NULL;
new_node->force_output = true;
@@ -319,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;
}