From 43d397ca8f097e8f0ab0c245afeaa22b8da7ac52 Mon Sep 17 00:00:00 2001 From: Philippe Waroquiers Date: Sun, 28 Oct 2018 13:57:51 +0100 Subject: [PATCH] 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 * 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 * gdb.dwarf2/dw2-case-insensitive.exp: Update due to auto switch to FUNC_lang language syntax. --- gdb/ChangeLog | 7 +++++++ gdb/symtab.c | 12 +++++------- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp | 4 +++- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 413c61243c4..e82799a7d29 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2018-11-20 Philippe Waroquiers + + * 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 * language.h (scoped_switch_to_sym_language_if_auto): New class. diff --git a/gdb/symtab.c b/gdb/symtab.c index 7a77bcfb183..f8c755fdab2 100644 --- a/gdb/symtab.c +++ b/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) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5b2172543a8..b532ed27eb9 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-11-20 Philippe Waroquiers + + * gdb.dwarf2/dw2-case-insensitive.exp: Update due to auto switch to + FUNC_lang language syntax. + 2018-11-20 Philippe Waroquiers * gdb.base/info_minsym.c: New file. diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp index b15dcafa005..328facd64ea 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp @@ -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]+ } -- 2.30.2