diff options
-rw-r--r-- | gcc/ChangeLog.hsa | 5 | ||||
-rw-r--r-- | gcc/hsa.c | 18 |
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 |