This adds a sanity check to cp_parser_expression_statement similar to
the one in finish_expr_stmt added by
r6-6795-g0fd9d4921f7ba2, which
effectively downgrades accepts-invalid/wrong-code bugs like this one
into ice-on-invalid/ice-on-valid ones.
PR c++/112658
gcc/cp/ChangeLog:
* parser.cc (cp_parser_expression_statement): If the statement
is error_mark_node, make sure we've seen_error().
if (statement == error_mark_node
&& !cp_parser_uncommitted_to_tentative_parse_p (parser))
{
+ /* If we ran into a problem, make sure we complained. */
+ gcc_assert (seen_error ());
+
cp_parser_skip_to_end_of_block_or_statement (parser);
return error_mark_node;
}