aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-lang.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2007-02-22 17:03:48 +0000
committerMichael Matz <matz@gcc.gnu.org>2007-02-22 17:03:48 +0000
commita0ad3539f415e3f925691340ce389c0dc0819c91 (patch)
treeb9429c7e1446e9672a2be1a81499cfcc7a228646 /gcc/cp/cp-lang.c
parentb3502aa8d46d9cd008916170a635b2bf3a5d5125 (diff)
downloadgcc-a0ad3539f415e3f925691340ce389c0dc0819c91.zip
gcc-a0ad3539f415e3f925691340ce389c0dc0819c91.tar.gz
gcc-a0ad3539f415e3f925691340ce389c0dc0819c91.tar.bz2
dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
* dwarf2out.c (add_AT_string): Call ggc_strdup once per string. (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME. * cp-tree.h (TFF_NO_OUTER_SCOPE): New formatting flag. * error.c (dump_aggr_type, dump_simple_decl, dump_decl, dump_function_decl): Guard emitting outer scopes by new flag. * cp-lang.c (cxx_dwarf_name): New function. (LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name. * pt.c (classtype_mangled_name, mangle_class_name_for_template): Remove functions. (push_template_decl_real, lookup_template_class): Remove calls to above functions. From-SVN: r122230
Diffstat (limited to 'gcc/cp/cp-lang.c')
-rw-r--r--gcc/cp/cp-lang.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index 793046b..507641c 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -36,6 +36,7 @@ Boston, MA 02110-1301, USA. */
enum c_language_kind c_language = clk_cxx;
static void cp_init_ts (void);
+static const char * cxx_dwarf_name (tree t, int verbosity);
/* Lang hooks common to C++ and ObjC++ are declared in cp/cp-objcp-common.h;
consequently, there should be very few hooks below. */
@@ -46,6 +47,8 @@ static void cp_init_ts (void);
#define LANG_HOOKS_INIT cxx_init
#undef LANG_HOOKS_DECL_PRINTABLE_NAME
#define LANG_HOOKS_DECL_PRINTABLE_NAME cxx_printable_name
+#undef LANG_HOOKS_DWARF_NAME
+#define LANG_HOOKS_DWARF_NAME cxx_dwarf_name
#undef LANG_HOOKS_FOLD_OBJ_TYPE_REF
#define LANG_HOOKS_FOLD_OBJ_TYPE_REF cp_fold_obj_type_ref
#undef LANG_HOOKS_INIT_TS
@@ -138,6 +141,17 @@ cp_init_ts (void)
}
+static const char *
+cxx_dwarf_name (tree t, int verbosity)
+{
+ gcc_assert (DECL_P (t));
+
+ if (verbosity >= 2)
+ return decl_as_string (t, TFF_DECL_SPECIFIERS | TFF_UNQUALIFIED_NAME);
+
+ return cxx_printable_name (t, verbosity);
+}
+
void
finish_file (void)
{