https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85076
Bug ID: 85076 Summary: [6/7/8 Regression] ICE with invalid template used as lambda argument Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: error-recovery, ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org Target Milestone: --- The following invalid code snippet triggers an ICE since GCC 6.2.0: ================================== template<typename> struct A*; auto a = [](A<auto>) {}; ================================== bug.cc:1:29: error: expected unqualified-id before ';' token template<typename> struct A*; ^ bug.cc:3:13: error: 'A' is not a template auto a = [](A<auto>) {}; ^ bug.cc:3:13: error: '<anonymous>' has incomplete type auto a = [](A<auto>) {}; ^~~~~~~ bug.cc:1:27: note: forward declaration of 'struct A' template<typename> struct A*; ^ bug.cc:3:23: internal compiler error: tree check: expected reference_type, have error_mark in cp_build_reference_type, at cp/tree.c:1099 auto a = [](A<auto>) {}; ^ 0x78c502 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/gcc/tree.c:9322 0x664299 tree_check(tree_node*, char const*, int, char const*, tree_code) ../../gcc/gcc/tree.h:3135 0x664299 cp_build_reference_type(tree_node*, bool) ../../gcc/gcc/cp/tree.c:1099 0x8f4696 forward_parm(tree_node*) ../../gcc/gcc/cp/method.c:472 0x8dd6be maybe_add_lambda_conv_op(tree_node*) ../../gcc/gcc/cp/lambda.c:1125 0x924fc2 cp_parser_lambda_expression ../../gcc/gcc/cp/parser.c:10201 0x924fc2 cp_parser_primary_expression ../../gcc/gcc/cp/parser.c:5263 0x937c0c cp_parser_postfix_expression ../../gcc/gcc/cp/parser.c:7032 0x9387e0 cp_parser_unary_expression ../../gcc/gcc/cp/parser.c:8324 0x9186df cp_parser_cast_expression ../../gcc/gcc/cp/parser.c:9092 0x918eea cp_parser_binary_expression ../../gcc/gcc/cp/parser.c:9193 0x91a724 cp_parser_assignment_expression ../../gcc/gcc/cp/parser.c:9488 0x91987b cp_parser_constant_expression ../../gcc/gcc/cp/parser.c:9772 0x91a6a7 cp_parser_initializer_clause ../../gcc/gcc/cp/parser.c:21929 0x91cf62 cp_parser_initializer ../../gcc/gcc/cp/parser.c:21869 0x93c3ae cp_parser_init_declarator ../../gcc/gcc/cp/parser.c:19684 0x943758 cp_parser_simple_declaration ../../gcc/gcc/cp/parser.c:13059 0x944568 cp_parser_block_declaration ../../gcc/gcc/cp/parser.c:12884 0x9484c2 cp_parser_declaration ../../gcc/gcc/cp/parser.c:12782 0x9488d1 cp_parser_declaration_seq_opt ../../gcc/gcc/cp/parser.c:12658 Please submit a full bug report, [etc.]