c++: Fix error-recovery with requires expression [PR99500]
commitbd9b262fa9243e08fefa4973f08d1f09f6694ba0
authorMarek Polacek <polacek@redhat.com>
Wed, 10 Mar 2021 01:55:14 +0000 (9 20:55 -0500)
committerMarek Polacek <polacek@redhat.com>
Fri, 19 Mar 2021 00:09:44 +0000 (18 20:09 -0400)
tree4bd3bec7bf0cf91ad0c17bb131025cc63c3ba2fd
parent96ccb325432822f0f5b22bb44c2035ec1e7e8631
c++: Fix error-recovery with requires expression [PR99500]

This fixes an ICE on invalid code where one of the parameters was
error_mark_node and thus resetting its DECL_CONTEXT crashed.

gcc/cp/ChangeLog:

PR c++/99500
* parser.c (cp_parser_requirement_parameter_list): Handle
error_mark_node.

gcc/testsuite/ChangeLog:

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