c++: Fix endless errors on invalid requirement seq [PR97742]
authorJakub Jelinek <jakub@redhat.com>
Fri, 12 Feb 2021 08:55:46 +0000 (09:55 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 12 Feb 2021 08:58:25 +0000 (09:58 +0100)
commitcf059e1c099ed45c97f740c030dcb8e146ac7d4a
tree861d014b76691ea6e3ddd8abe054cb4be344d195
parent95d94b52ea8478334fb92cca545f0bd904bd0034
c++: Fix endless errors on invalid requirement seq [PR97742]

As the testcase shows, if we reach CPP_EOF during parsing of requirement
sequence, we end up with endless loop where we always report invalid
requirement expression, don't consume any token (as we are at eof) and
repeat.

This patch stops the loop when we reach CPP_EOF.

2021-02-12  Jakub Jelinek  <jakub@redhat.com>

PR c++/97742
* parser.c (cp_parser_requirement_seq): Stop iterating after reaching
CPP_EOF.

* g++.dg/cpp2a/concepts-requires24.C: New test.
gcc/cp/parser.c
gcc/testsuite/g++.dg/cpp2a/concepts-requires24.C [new file with mode: 0644]