aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/darwin.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r--gcc/config/darwin.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index e486594..124d4af 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1338,14 +1338,17 @@ no_dead_strip (FILE *file, const char *lab)
void
darwin_emit_unwind_label (FILE *file, tree decl, int for_eh, int empty)
{
- tree id = DECL_ASSEMBLER_NAME (decl)
- ? DECL_ASSEMBLER_NAME (decl)
- : DECL_NAME (decl);
+ const char *base;
+ char *lab;
+ bool need_quotes;
- const char *base = IDENTIFIER_POINTER (id);
+ if (DECL_ASSEMBLER_NAME_SET_P (decl))
+ base = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+ else
+ base = IDENTIFIER_POINTER (DECL_NAME (decl));
- bool need_quotes = name_needs_quotes (base);
- char *lab;
+ base = targetm.strip_name_encoding (base);
+ need_quotes = name_needs_quotes (base);
if (! for_eh)
return;