On 2/20/19 4:33 PM, David Malcolm wrote:
On Tue, 2019-02-19 at 20:37 +0100, Jakub Jelinek wrote:
On Tue, Feb 19, 2019 at 02:44:55PM -0500, David Malcolm wrote:
How about something like this? (on top of Jakub's patch)

I had following queued for regtest, so if you want to go for the
make_location ^~, you should change more spots.

pr89390.C: In function 'void foo()':
pr89390.C:9:6: error: '~A' is not a member of 'A'
     9 |   A::~A ();    // { dg-error "6: '~A' is not a member of
'A'" }
       |      ^~
pr89390.C: In function 'void test_2()':
pr89390.C:17:10: error: '~ns::P' is not a member of 'ns::P'
    17 |   ns::P::~P ();    // { dg-error "10: '~ns::P' is not a
member of 'ns::P'" }
       |          ^~

(Presumably gcc 10 material at this point; not yet bootstrapped).

I wouldn't say so, it actually is even a regression:
$ /usr/src/gcc-6/obj/gcc/cc1plus -quiet pr89390.C
pr89390.C: In function ‘void foo()’:
pr89390.C:9:3: error: ‘~A’ is not a member of ‘A’
    A::~A (); // { dg-error "'~A' is not a member of 'A'" }
    ^

$ /usr/src/gcc-7/obj/gcc/cc1plus -quiet pr89390.C
In function ‘void foo()’:
cc1plus: error: ‘~A’ is not a member of ‘A’

Feel free to take this over though.

2019-02-19  Jakub Jelinek  <ja...@redhat.com>

        PR c++/89390
        * parser.c (cp_parser_unqualified_id): For BIT_NOT_EXPR
remember
        location of the ~ token and use it to build cp_expr.

        * g++.dg/diagnostic/pr89390.C (foo): Expect diagnostics at the
right
        line.

Thanks.

Here's an updated version of the patch which use make_location, and
merges in the changes from yours, and uses the loc in some other places
(adding test coverage for them); hope that's not stretching things
too far.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.

OK for trunk?

OK.

Jason

Reply via email to