Remove uses of fprintf_symbol_filtered

I believe that many calls to fprintf_symbol_filtered are incorrect.
In particular, there are some that pass a symbol's print name, like:

  fprintf_symbol_filtered (gdb_stdout, sym->print_name (),
			   current_language->la_language, DMGL_ANSI);

fprintf_symbol_filtered uses the "demangle" global to decide whether
or not to demangle -- but print_name does this as well.  This can lead
to double-demangling.  Normally this could be innocuous, except I also
plan to change Ada demangling in a way that causes this to fail.
This commit is contained in:
Tom Tromey 2021-07-08 11:45:55 -06:00
parent ba8694b650
commit 9698f71410
3 changed files with 7 additions and 17 deletions

View file

@ -348,16 +348,12 @@ py_print_single_arg (struct ui_out *out,
{
string_file stb;
fprintf_symbol_filtered (&stb, fa->sym->print_name (),
fa->sym->language (),
DMGL_PARAMS | DMGL_ANSI);
fputs_filtered (fa->sym->print_name (), &stb);
if (fa->entry_kind == print_entry_values_compact)
{
stb.puts ("=");
fprintf_symbol_filtered (&stb, fa->sym->print_name (),
fa->sym->language (),
DMGL_PARAMS | DMGL_ANSI);
fputs_filtered (fa->sym->print_name (), &stb);
}
if (fa->entry_kind == print_entry_values_only
|| fa->entry_kind == print_entry_values_compact)