Use scoped_switch_to_sym_language_if_auto in symtab.c to switch language.
Use scoped_switch_to_sym_language_if_auto in treg_matches_sym_type_name to replace the local logic that was doing the same as the new class scoped_switch_to_sym_language_if_auto. Use scoped_switch_to_sym_language_if_auto inside print_symbol_info, so that symbol information is printed in the symbol language when language mode is auto. This modifies the behaviour of the test dw2-case-insensitive.exp, as the function FUNC_lang is now printed with the Fortran syntax (as declared in the .S file). gdb/ChangeLog 2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be> * symtab.c (treg_matches_sym_type_name): Use scoped_switch_to_sym_language_if_auto instead of local logic. (print_symbol_info): Use scoped_switch_to_sym_language_if_auto to switch to SYM language when language mode is auto. gdb/testsuite/ChangeLog 2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be> * gdb.dwarf2/dw2-case-insensitive.exp: Update due to auto switch to FUNC_lang language syntax.
This commit is contained in:
parent
9e6a1ab665
commit
43d397ca8f
4 changed files with 20 additions and 8 deletions
|
@ -1,3 +1,10 @@
|
|||
2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||||
|
||||
* symtab.c (treg_matches_sym_type_name): Use
|
||||
scoped_switch_to_sym_language_if_auto instead of local logic.
|
||||
(print_symbol_info): Use scoped_switch_to_sym_language_if_auto
|
||||
to switch to SYM language when language mode is auto.
|
||||
|
||||
2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||||
|
||||
* language.h (scoped_switch_to_sym_language_if_auto): New class.
|
||||
|
|
12
gdb/symtab.c
12
gdb/symtab.c
|
@ -4288,15 +4288,12 @@ treg_matches_sym_type_name (const compiled_regex &treg,
|
|||
if (sym_type == NULL)
|
||||
return false;
|
||||
|
||||
if (language_mode == language_mode_auto)
|
||||
{
|
||||
scoped_restore_current_language l;
|
||||
{
|
||||
scoped_switch_to_sym_language_if_auto l (sym);
|
||||
|
||||
set_language (SYMBOL_LANGUAGE (sym));
|
||||
printed_sym_type_name = type_to_string (sym_type);
|
||||
}
|
||||
else
|
||||
printed_sym_type_name = type_to_string (sym_type);
|
||||
}
|
||||
|
||||
|
||||
if (symbol_lookup_debug > 1)
|
||||
{
|
||||
|
@ -4600,6 +4597,7 @@ print_symbol_info (enum search_domain kind,
|
|||
struct symbol *sym,
|
||||
int block, const char *last)
|
||||
{
|
||||
scoped_switch_to_sym_language_if_auto l (sym);
|
||||
struct symtab *s = symbol_symtab (sym);
|
||||
|
||||
if (last != NULL)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||||
|
||||
* gdb.dwarf2/dw2-case-insensitive.exp: Update due to auto switch to
|
||||
FUNC_lang language syntax.
|
||||
|
||||
2018-11-20 Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||||
|
||||
* gdb.base/info_minsym.c: New file.
|
||||
|
|
|
@ -42,8 +42,10 @@ gdb_test "info functions fUnC_lang" \
|
|||
gdb_test "set case-sensitive off" {warning: the current case sensitivity setting does not match the language\.}
|
||||
|
||||
# The dot-leading symbol is for ppc64 function descriptors.
|
||||
# Note that info functions gives the FUNC_lang result using the fortran syntax
|
||||
# as specified in dw-case-insensitive-debug.S DW_AT_language.
|
||||
gdb_test "info functions fUnC_lang" \
|
||||
"All functions matching regular expression \"fUnC_lang\":\[\r\n\]+File file1.txt:\r\n\tfoo FUNC_lang\\(void\\);(\r\n\r\nNon-debugging symbols:\r\n0x\[0-9a-f\]+ +\\.FUNC_lang)?" \
|
||||
"All functions matching regular expression \"fUnC_lang\":\[\r\n\]+File file1.txt:\r\n\tfoo FUNC_lang\\(\\);(\r\n\r\nNon-debugging symbols:\r\n0x\[0-9a-f\]+ +\\.FUNC_lang)?" \
|
||||
"regexp case-sensitive off"
|
||||
|
||||
gdb_test "p fuNC_lang" { = {foo \(void\)} 0x[0-9a-f]+ <FUNC_lang>}
|
||||
|
|
Loading…
Add table
Reference in a new issue