https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69798
--- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> --- So an option here would be to: --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -7512,28 +7512,6 @@ c_parser_postfix_expression (c_parser *parser) set_c_expr_source_range (&expr, loc, close_loc); mark_exp_read (expr.value); } - else if (c_token_starts_typename (c_parser_peek_2nd_token (parser))) - { - /* A compound literal. ??? Can we actually get here rather - than going directly to - c_parser_postfix_expression_after_paren_type from - elsewhere? */ - location_t loc; - struct c_type_name *type_name; - c_parser_consume_token (parser); - loc = c_parser_peek_token (parser)->location; - type_name = c_parser_type_name (parser); - c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, - "expected %<)%>"); - if (type_name == NULL) - { - expr.value = error_mark_node; - } - else - expr = c_parser_postfix_expression_after_paren_type (parser, - type_name, - loc); - } else { /* A parenthesized expression. */ I put gcc_unreachable (); into the block, did regtest, and there are no failures.