diff options
author | Tom Tromey <tom@tromey.com> | 2023-03-29 13:51:13 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-03-31 08:55:55 -0600 |
commit | 9497d69fc0eeca8682cc09360fb822ced6b4670f (patch) | |
tree | ddefa0ba7514d91b246dfcf521900c802b95fe50 | |
parent | 6f214d0f399847b13f979651c3b46befcbb42140 (diff) | |
download | gdb-9497d69fc0eeca8682cc09360fb822ced6b4670f.zip gdb-9497d69fc0eeca8682cc09360fb822ced6b4670f.tar.gz gdb-9497d69fc0eeca8682cc09360fb822ced6b4670f.tar.bz2 |
Remove language_demangle
I noticed that language_demangle shadows the global
"current_language". When I went to fix this, though, I then saw that
language_demangle is only called in two places, and has a comment
saying it should be removed. This patch removes it. Note that the
NULL check in language_demangle is not needed by either of the
existing callers.
Regression tested on x86-64 Fedora 36.
Approved-By: Simon Marchi <simon.marchi@efficios.com>
-rw-r--r-- | gdb/gdb-demangle.c | 2 | ||||
-rw-r--r-- | gdb/language.c | 15 | ||||
-rw-r--r-- | gdb/language.h | 5 | ||||
-rw-r--r-- | gdb/utils.c | 2 |
4 files changed, 2 insertions, 22 deletions
diff --git a/gdb/gdb-demangle.c b/gdb/gdb-demangle.c index 3af3182..4bcdd98 100644 --- a/gdb/gdb-demangle.c +++ b/gdb/gdb-demangle.c @@ -202,7 +202,7 @@ demangle_command (const char *args, int from_tty) lang = current_language; gdb::unique_xmalloc_ptr<char> demangled - = language_demangle (lang, name, DMGL_ANSI | DMGL_PARAMS); + = lang->demangle_symbol (name, DMGL_ANSI | DMGL_PARAMS); if (demangled != NULL) gdb_printf ("%s\n", demangled.get ()); else diff --git a/gdb/language.c b/gdb/language.c index 50a53c6..fb065ef 100644 --- a/gdb/language.c +++ b/gdb/language.c @@ -540,21 +540,6 @@ skip_language_trampoline (frame_info_ptr frame, CORE_ADDR pc) return 0; } -/* Return demangled language symbol, or NULL. - FIXME: Options are only useful for certain languages and ignored - by others, so it would be better to remove them here and have a - more flexible demangler for the languages that need it. - FIXME: Sometimes the demangler is invoked when we don't know the - language, so we can't use this everywhere. */ -gdb::unique_xmalloc_ptr<char> -language_demangle (const struct language_defn *current_language, - const char *mangled, int options) -{ - if (current_language != NULL) - return current_language->demangle_symbol (mangled, options); - return NULL; -} - /* Return information about whether TYPE should be passed (and returned) by reference at the language level. */ diff --git a/gdb/language.h b/gdb/language.h index a51ddf9..57df8ac 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -791,11 +791,6 @@ extern const char *language_str (enum language); extern CORE_ADDR skip_language_trampoline (frame_info_ptr, CORE_ADDR pc); -/* Return demangled language symbol, or NULL. */ -extern gdb::unique_xmalloc_ptr<char> language_demangle - (const struct language_defn *current_language, - const char *mangled, int options); - /* Return information about whether TYPE should be passed (and returned) by reference at the language level. */ struct language_pass_by_ref_info language_pass_by_reference (struct type *type); diff --git a/gdb/utils.c b/gdb/utils.c index 4c7d665..6ec1cc0 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1909,7 +1909,7 @@ fprintf_symbol (struct ui_file *stream, const char *name, else { gdb::unique_xmalloc_ptr<char> demangled - = language_demangle (language_def (lang), name, arg_mode); + = language_def (lang)->demangle_symbol (name, arg_mode); gdb_puts (demangled ? demangled.get () : name, stream); } } |