This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PING: [PATCH] Fixing parse errors in c-exp.y


On Mon, Sep 26, 2011 at 11:53 PM, Keith Seitz <keiths@redhat.com> 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. ?(int)(*)(int*)
>
> Thank you for looking into this issue -- I have recently stumbled upon this
> (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!=(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=(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|=(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==(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||(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^=(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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]