From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 101608 invoked by alias); 28 Oct 2018 14:46:33 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 101499 invoked by uid 89); 28 Oct 2018 14:46:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_STOCKGEN,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=modifies, sensitivity, HContent-Transfer-Encoding:8bit X-HELO: mailsec110.isp.belgacom.be Received: from mailsec110.isp.belgacom.be (HELO mailsec110.isp.belgacom.be) (195.238.20.106) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 28 Oct 2018 14:46:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skynet.be; i=@skynet.be; q=dns/txt; s=securemail; t=1540737990; x=1572273990; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QGFmojRvRA1F1bbSCn6j7VeBneqy48zvHYxBehtYmXk=; b=Dsqr4nLqNeYJl3BNWogT54aJoV2fSLf1yBOjmIZ3/DuPmz6aX7qiw7KN /Y6rFy2Fxc9N7HRvlkQJZAu6lr4Uqw==; Received: from 110.212-243-81.adsl-dyn.isp.belgacom.be (HELO md.home) ([81.243.212.110]) by relay.skynet.be with ESMTP/TLS/DHE-RSA-AES128-GCM-SHA256; 28 Oct 2018 15:46:23 +0100 From: Philippe Waroquiers To: gdb-patches@sourceware.org Cc: Philippe Waroquiers Subject: [RFA 2/5] Use scoped_switch_auto_to_sym_language in symtab.c to switch language. Date: Sun, 28 Oct 2018 14:46:00 -0000 Message-Id: <20181028144614.14149-3-philippe.waroquiers@skynet.be> In-Reply-To: <20181028144614.14149-1-philippe.waroquiers@skynet.be> References: <20181028144614.14149-1-philippe.waroquiers@skynet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2018-10/txt/msg00667.txt.bz2 Use scoped_switch_auto_to_sym_language in treg_matches_sym_type_name to replace the local logic that was doing the same as the new class scoped_switch_auto_to_sym_language. Use scoped_switch_auto_to_sym_language 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-10-27 Philippe Waroquiers * symtab.c (treg_matches_sym_type_name): Use scoped_switch_auto_to_sym_language instead of local logic. (print_symbol_info): Use scoped_switch_auto_to_sym_language to switch to SYM language when language mode is auto. gdb/testsuite/ChangeLOg 2018-10-27 Philippe Waroquiers * gdb.dwarf2/dw2-case-insensitive.exp: Update due to auto switch to FUNC_lang language syntax. --- gdb/symtab.c | 12 +++++------- gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp | 4 +++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gdb/symtab.c b/gdb/symtab.c index cd27a75e8c..0f9d562c84 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_auto_to_sym_language 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) { @@ -4601,6 +4598,7 @@ print_symbol_info (enum search_domain kind, struct symbol *sym, int block, const char *last) { + scoped_switch_auto_to_sym_language l (sym); struct symtab *s = symbol_symtab (sym); if (last != NULL) diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp index b15dcafa00..2e3397865a 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 specific 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.19.1