From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24122 invoked by alias); 27 Sep 2011 06:52:31 -0000 Received: (qmail 24111 invoked by uid 22791); 27 Sep 2011 06:52:29 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-pz0-f49.google.com (HELO mail-pz0-f49.google.com) (209.85.210.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Sep 2011 06:52:15 +0000 Received: by pzk34 with SMTP id 34so17112562pzk.8 for ; Mon, 26 Sep 2011 23:52:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.8.233 with SMTP id u9mr34933234pba.30.1317106334751; Mon, 26 Sep 2011 23:52:14 -0700 (PDT) Received: by 10.143.147.12 with HTTP; Mon, 26 Sep 2011 23:52:14 -0700 (PDT) In-Reply-To: <4E80C318.1000800@redhat.com> References: <4E80C318.1000800@redhat.com> Date: Tue, 27 Sep 2011 10:44:00 -0000 Message-ID: Subject: Re: PING: [PATCH] Fixing parse errors in c-exp.y From: Abhijit Halder To: Keith Seitz Cc: "gdb-patches@sourceware.org ml" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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-09/txt/msg00455.txt.bz2 On Mon, Sep 26, 2011 at 11:53 PM, Keith Seitz wrote: > On 09/24/2011 02:18 AM, Abhijit Halder wrote: > >> This patch is about fixing parse error coming when gdb tries to parse >> a pointer to a function pointer. e.g. (int)(**)(int) and the >> associated problem, defined in PR 9837, which says wrong parsing when >> pointers appear in function argument e.g. =A0(int)(*)(int*) > > Thank you for looking into this issue -- I have recently stumbled upon th= is > (again), and I am glad someone is attempting to fix it. It is definitely = not > an easy task (which is why this has been sitting broken for so long). > >> Please review this. > > I have applied your patch to HEAD and run the test suite. Unfortunately, = the > proposed patch causes quite a few regressions: > > ! FAIL: gdb.base/code-expr.exp: (int ** @code) > ! FAIL: gdb.base/cvexpr.exp: (int ** const) > ! FAIL: gdb.cp/cpexprs.exp: print base::overload(base&) const > ! FAIL: gdb.cp/cpexprs.exp: print base::overload(char*) const > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator*(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator%(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator-(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator>>(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator!=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator>(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator>=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator|(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator&&(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator+=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator*=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator%=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator>>=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator|=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator,(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator/(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator+(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator<<(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator=3D=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator<(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator<=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator&(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator^(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator||(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator-=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator/=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator<<=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator&=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator^=3D(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator->*(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator[](foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator()(foo&) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*) > ! FAIL: gdb.cp/cplusfuncs.exp: print &foo::operator delete(void*) > ! FAIL: gdb.cp/overload.exp: print foo::overload1arg(char***) > > These will need to be fixed before a serious review of this patch can > proceed. > > Keith > Sure, I will try to fix these issues soon. Thanks, Abhijit Halder