From f9d99dd28899656ab73816f6d8a79e9787c36134 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 22 Sep 2000 15:10:58 -0400 Subject: [PATCH] fix From-SVN: r36574 --- gcc/dbxout.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 1be2025779d..18f0822d744 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -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, -- 2.30.2