OSDN Git Service

2006-10-13 Eric Christopher <echristo@apple.com>
authorechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Oct 2006 21:26:49 +0000 (21:26 +0000)
committerechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Oct 2006 21:26:49 +0000 (21:26 +0000)
        * config/darwin.c (darwin_emit_unwind_label): Strip
        name encoding. Use DECL_ASSEMBLER_NAME_SET_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117708 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/darwin.c

index d242366..bb1be3c 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-13  Eric Christopher  <echristo@apple.com>
+
+       * config/darwin.c (darwin_emit_unwind_label): Strip
+       name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
+
 2006-10-13  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/29446
        Use <modeconstraint> instead of "r" as operand 1 constraint.
 
 2006-10-06  Olivier Hainque  <hainque@adacore.com>
-       
+
        * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
        Don't recurse on the pointed-to type.
        * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
        (get_emutls_object_name, get_emutls_object_type): New.
        (get_emutls_init_templ_addr, emutls_decl): New.
        (emutls_common_1, emutls_finish): New.
-        (assemble_variable): When emulating tls, swap decls; generate 
+        (assemble_variable): When emulating tls, swap decls; generate
        constructor for the emutls objects.
        (do_assemble_alias): When emulating tls, swap decl and target name.
         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
index e486594..124d4af 100644 (file)
@@ -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;