aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog.hsa5
-rw-r--r--gcc/hsa.c18
2 files changed, 17 insertions, 6 deletions
diff --git a/gcc/ChangeLog.hsa b/gcc/ChangeLog.hsa
index 921dd0c57fd..36298977c48 100644
--- a/gcc/ChangeLog.hsa
+++ b/gcc/ChangeLog.hsa
@@ -1,5 +1,10 @@
2015-11-27 Martin Liska <mliska@suse.cz>
+ * hsa.c (hsa_get_declaration_name): Skip leading asterisk symbol
+ is assembly name.
+
+2015-11-27 Martin Liska <mliska@suse.cz>
+
* hsa-gen.c (hsa_init_simple_builtins): New function.
(hsa_deinit_data_for_cfun): Release memory of
omp_simple_builtins.
diff --git a/gcc/hsa.c b/gcc/hsa.c
index 7c4e404f563..c7286088ac1 100644
--- a/gcc/hsa.c
+++ b/gcc/hsa.c
@@ -710,14 +710,20 @@ hsa_get_declaration_name (tree decl)
free (b);
return ggc_str;
}
- else if (TREE_CODE (decl) == FUNCTION_DECL)
- return cgraph_node::get_create (decl)->asm_name ();
- else if (TREE_CODE (decl) == VAR_DECL && is_global_var (decl))
- return IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+
+ tree name_tree;
+ if (TREE_CODE (decl) == FUNCTION_DECL
+ || (TREE_CODE (decl) == VAR_DECL && is_global_var (decl)))
+ name_tree = DECL_ASSEMBLER_NAME (decl);
else
- return IDENTIFIER_POINTER (DECL_NAME (decl));
+ name_tree = DECL_NAME (decl);
+
+ const char *name = IDENTIFIER_POINTER (name_tree);
+ /* User-defined assembly names have prepended asterisk symbol. */
+ if (name[0] == '*')
+ name++;
- return NULL;
+ return name;
}
void