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: [PATCH v4] Do not classify C struct members as a filename


On 2018-01-25 11:20 AM, Leszek Swirski wrote:
> There is existing logic in C/C++ expression parsing to avoid classifying
> names as a filename when they are a field on the this object. This
> change extends this logic to also avoid classifying names after a
> struct-op (-> or .) as a filename, which otherwise causes a syntax
> error.
> 
> Thus, it is now possible in the file
> 
>     #include <map>
>     struct D {
>         void map();
>     }
>     D d;
> 
> to call
> 
>     (gdb) print d.map()
> 
> where previously this would have been a syntax error.
> 
> Tested on gdb.cp/*.exp
> 
> gdb/ChangeLog:
> 
>         * c-exp.y (lex_one_token, classify_name, yylex): Don't classify
>         names after a structop as a filename
> 
> gdb/testsuite/ChangeLog:
> 
>         * gdb.cp/filename.cc, gdb.cp/filename.exp: Test that member
>         functions with the same name as an include file are parsed
>         correctly.
> ---
> 
> Fix completion token to only appear on completion.
> 
>  gdb/ChangeLog                     |  5 +++++
>  gdb/c-exp.y                       | 45 +++++++++++++++++++++------------------
>  gdb/testsuite/ChangeLog           |  6 ++++++
>  gdb/testsuite/gdb.cp/filename.cc  | 22 ++++++++++++++++++-
>  gdb/testsuite/gdb.cp/filename.exp | 20 +++++++++++++++--
>  5 files changed, 74 insertions(+), 24 deletions(-)

Thanks for the update, I have pushed it.

Simon


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