From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19203 invoked by alias); 1 Jul 2011 20:29:36 -0000 Received: (qmail 19193 invoked by uid 22791); 1 Jul 2011 20:29:35 -0000 X-SWARE-Spam-Status: No, hits=-5.7 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 Jul 2011 20:29:11 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p61KT3Mn022185 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 1 Jul 2011 16:29:03 -0400 Received: from host1.jankratochvil.net ([10.3.113.13]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p61KT1N7003607 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 1 Jul 2011 16:29:02 -0400 Received: from host1.jankratochvil.net (localhost [127.0.0.1]) by host1.jankratochvil.net (8.14.4/8.14.4) with ESMTP id p61KSxBS018812; Fri, 1 Jul 2011 22:28:59 +0200 Received: (from jkratoch@localhost) by host1.jankratochvil.net (8.14.4/8.14.4/Submit) id p61KSxmK018808; Fri, 1 Jul 2011 22:28:59 +0200 Date: Fri, 01 Jul 2011 20:29:00 -0000 From: Jan Kratochvil To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: [commit] Re: [patch] physname regression: Non-matching type false breakpoint Message-ID: <20110701202859.GC22980@host1.jankratochvil.net> References: <20110605153419.GA14873@host1.jankratochvil.net> <201106061021.30546.pedro@codesourcery.com> <20110606211943.GA9362@host1.jankratochvil.net> <201106071758.28138.pedro@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201106071758.28138.pedro@codesourcery.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes 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 X-SW-Source: 2011-07/txt/msg00060.txt.bz2 On Tue, 07 Jun 2011 18:58:27 +0200, Pedro Alves wrote: > On Monday 06 June 2011 22:19:43, Jan Kratochvil wrote: > > - if (i1 == 1) > > + /* If we were given a specific overload instance in COPY defer the field > > + acceptance till the strcmp_iw verification below even if we found just > > + a single field with that name. */ > > I suggest a comma after "COPY", and another after "below". Done. Checked in. Thanks, Jan http://sourceware.org/ml/gdb-cvs/2011-07/msg00031.html --- src/gdb/ChangeLog 2011/07/01 20:18:59 1.13153 +++ src/gdb/ChangeLog 2011/07/01 20:27:58 1.13154 @@ -1,5 +1,10 @@ 2011-07-01 Jan Kratochvil + * linespec.c (find_method): Accept the function type automatically only + if it was specified with parameter types. + +2011-07-01 Jan Kratochvil + Stop on first linespec terminator instead of eating what we can. * linespec.c (is_linespec_boundary): New function. (name_end): Remove function. --- src/gdb/linespec.c 2011/07/01 20:19:03 1.124 +++ src/gdb/linespec.c 2011/07/01 20:27:58 1.125 @@ -1697,7 +1697,10 @@ i1 = find_methods (t, copy, SYMBOL_LANGUAGE (sym_class), sym_arr, file_symtab); - if (i1 == 1) + /* If we were given a specific overload instance in COPY, defer the field + acceptance till the strcmp_iw verification below, even if we found just + a single field with that name. */ + if (i1 == 1 && strchr (copy, '(') == NULL) { /* There is exactly one field with that name. */ sym = sym_arr[0]; --- src/gdb/testsuite/ChangeLog 2011/07/01 20:19:03 1.2776 +++ src/gdb/testsuite/ChangeLog 2011/07/01 20:27:59 1.2777 @@ -1,5 +1,10 @@ 2011-07-01 Jan Kratochvil + * gdb.cp/paren-type.cc: New files. + * gdb.cp/paren-type.exp: New files. + +2011-07-01 Jan Kratochvil + Stop on first linespec terminator instead of eating what we can. * gdb.cp/minsym-fallback-main.cc (main): Call also C::operator (). * gdb.cp/minsym-fallback.cc (C::operator ()): Define. --- src/gdb/testsuite/gdb.cp/paren-type.cc +++ src/gdb/testsuite/gdb.cp/paren-type.cc 2011-07-01 20:28:47.786329000 +0000 @@ -0,0 +1,33 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2011 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +class C +{ +public: + static void f (short x); +}; + +void +C::f (short x) +{ +} + +int +main () +{ + C::f(1); +} --- src/gdb/testsuite/gdb.cp/paren-type.exp +++ src/gdb/testsuite/gdb.cp/paren-type.exp 2011-07-01 20:28:48.069315000 +0000 @@ -0,0 +1,26 @@ +# Copyright (C) 2011 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set testfile paren-type +if { [prepare_for_testing ${testfile}.exp ${testfile} ${testfile}.cc {c++ debug}] } { + return -1 +} + +gdb_test_no_output "set breakpoint pending off" + +gdb_test "break C::f(long)" {Function "C::f\(long\)" not defined\.} + +# Sanity check the breakpoints work for the correct type. +gdb_test "break C::f(short)" "Breakpoint 1 at \[^\r\n\]*"