From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116391 invoked by alias); 28 Aug 2019 13:36:26 -0000 Mailing-List: contact gdb-testers-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-testers-owner@sourceware.org Received: (qmail 116383 invoked by uid 89); 28 Aug 2019 13:36:26 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: kwanyin.sergiodj.net Received: from kwanyin.sergiodj.net (HELO kwanyin.sergiodj.net) (158.69.185.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 28 Aug 2019 13:36:25 +0000 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [binutils-gdb] gdb/fortran: Don't include module symbols when searching for types From: gdb-buildbot@sergiodj.net To: gdb-testers@sourceware.org Message-Id: Date: Wed, 28 Aug 2019 13:58:00 -0000 X-SW-Source: 2019-q3/txt/msg03530.txt.bz2 *** TEST RESULTS FOR COMMIT d8f27c6018adbb32a3ebba39a5abac44a6b9e67c *** commit d8f27c6018adbb32a3ebba39a5abac44a6b9e67c Author: Andrew Burgess AuthorDate: Tue Jul 9 15:49:07 2019 +0100 Commit: Andrew Burgess CommitDate: Wed Aug 28 13:33:55 2019 +0100 gdb/fortran: Don't include module symbols when searching for types Currently the 'info types' command will return symbols that correspond to Fortran modules. This is because the symbols are created with domain MODULE_DOMAIN and address_class LOC_TYPEDEF. The address_class LOC_TYPEDEF is the same address_class used for type symbols which is why the modules show up when listing types. This commit explicitly prevents symbols in the MODULE_DOMAIN from appearing when we search for symbols in the TYPES_DOMAIN, this prevents the Fortran module symbols from appearing in the output of 'info types'. gdb/ChangeLog: * symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols when searching for types. gdb/testsuite/ChangeLog: * gdb.fortran/info-types.exp: Add module. * gdb.fortran/info-types.f90: Update expected results. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4767e03b7e..a82f7c64ae 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-08-28 Andrew Burgess + + * symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols + when searching for types. + 2019-08-28 Andrew Burgess * f-lang.c (f_language_defn): Use f_print_typedef. diff --git a/gdb/symtab.c b/gdb/symtab.c index 7762c85708..88e34de05b 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -4659,7 +4659,8 @@ search_symbols (const char *regexp, enum search_domain kind, || treg_matches_sym_type_name (*treg, sym))) || (kind == TYPES_DOMAIN - && SYMBOL_CLASS (sym) == LOC_TYPEDEF)))) + && SYMBOL_CLASS (sym) == LOC_TYPEDEF + && SYMBOL_DOMAIN (sym) != MODULE_DOMAIN)))) { /* match */ result.emplace_back (i, sym); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 02a3c01667..3939a747c5 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-08-28 Andrew Burgess + + * gdb.fortran/info-types.exp: Add module. + * gdb.fortran/info-types.f90: Update expected results. + 2019-08-28 Andrew Burgess * gdb.fortran/info-types.exp: New file. diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp index 9571dc4559..81e67395e8 100644 --- a/gdb/testsuite/gdb.fortran/info-types.exp +++ b/gdb/testsuite/gdb.fortran/info-types.exp @@ -42,4 +42,6 @@ gdb_test "info types" \ "\[\t \]+${character1}" \ "\[\t \]+${integer4}" \ "\[\t \]+${logical4}" \ - "16:\[\t \]+Type s1;" ] + "20:\[\t \]+Type __vtype_mod1_M1t1;" \ + "17:\[\t \]+Type m1t1;" \ + "22:\[\t \]+Type s1;" ] diff --git a/gdb/testsuite/gdb.fortran/info-types.f90 b/gdb/testsuite/gdb.fortran/info-types.f90 index 21c9d9df63..0e27e1ddf0 100644 --- a/gdb/testsuite/gdb.fortran/info-types.f90 +++ b/gdb/testsuite/gdb.fortran/info-types.f90 @@ -13,13 +13,24 @@ ! You should have received a copy of the GNU General Public License ! along with this program. If not, see . +module mod1 + type :: m1t1 + integer :: b + end type m1t1 +end module mod1 + program info_types_test + use mod1 + type :: s1 integer :: a end type s1 logical :: l type (s1) :: var_a + type (m1t1) :: var_b + var_a%a = 1 + var_b%b = 2 l = .FALSE. end program info_types_test