c++: input_location and lookahead [PR104025]
authorJason Merrill <jason@redhat.com>
Mon, 17 Jan 2022 22:16:38 +0000 (17:16 -0500)
committerJason Merrill <jason@redhat.com>
Tue, 18 Jan 2022 22:57:04 +0000 (17:57 -0500)
commit2aa184458a11a7ec8c1b451b8eeff458a24632bb
tree3165fe033d2c22b5a213d31fa3bb2f024979588b
parent7db42268ce4bc77bc13f13ba0899221747255bb5
c++: input_location and lookahead [PR104025]

Debug information was getting confused because input_location was different
depending on whether we had looked ahead to see if the next tokens look like
a template argument list.

I tried resetting input_location in cp_lexer_rollback_tokens itself, but
that caused regressions, so let's just do it here for now.

PR c++/104025

gcc/cp/ChangeLog:

* parser.cc (saved_token_sentinel::rollback): Call
cp_lexer_set_source_position.
(~saved_token_sentinel): Call rollback.

gcc/testsuite/ChangeLog:

* g++.dg/warn/pr104025.C: New test.

Co-authored-by: Jakub Jelinek <jakub@redhat.com>
gcc/cp/parser.cc
gcc/testsuite/g++.dg/warn/pr104025.C [new file with mode: 0644]