OSDN Git Service

fix
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Sep 2000 19:10:58 +0000 (19:10 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Sep 2000 19:10:58 +0000 (19:10 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36574 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/dbxout.c

index 1be2025..18f0822 100644 (file)
@@ -2215,11 +2215,19 @@ dbxout_symbol_name (decl, suffix, letter)
      const char *suffix;
      int letter;
 {
-  /* One slight hitch: if this is a VAR_DECL which is a static
-     class member, we must put out the mangled name instead of the
-     DECL_NAME.  Note also that static member (variable) names DO NOT begin
-     with underscores in .stabs directives.  */
-  const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+  const char *name;
+
+  if (DECL_CONTEXT (decl) && TYPE_P (DECL_CONTEXT (decl)))
+    /* One slight hitch: if this is a VAR_DECL which is a static
+       class member, we must put out the mangled name instead of the
+       DECL_NAME.  Note also that static member (variable) names DO NOT begin
+       with underscores in .stabs directives.  */
+    name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+  else
+    /* ...but if we're function-local, we don't want to include the junk
+       added by ASM_FORMAT_PRIVATE_NAME.  */
+    name = IDENTIFIER_POINTER (DECL_NAME (decl));
+
   if (name == 0)
     name = "(anon)";
   fprintf (asmfile, "%s \"%s%s:", ASM_STABS_OP, name,