http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58568
Bug ID: 58568 Summary: [4.8/4.9 Regression] ICE with lambda in invalid template variable definition Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org The following invalid code snippet (compiled with "-std=c++0x") triggers an ICE since GCC 4.8.1: ============================================================== template<int> struct A { static const int i; template<int N> const int A<N>::i = []{ return 0; }(); }; ============================================================== bug.cc:4:40: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in begin_lambda_type, at cp/lambda.c:144 template<int N> const int A<N>::i = []{ return 0; }(); ^ 0xcda4a9 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ../../gcc/gcc/tree.c:9227 0x722a3a tree_class_check ../../gcc/gcc/tree.h:2732 0x722a3a begin_lambda_type(tree_node*) ../../gcc/gcc/cp/lambda.c:144 0x641630 cp_parser_lambda_expression ../../gcc/gcc/cp/parser.c:8542 0x641630 cp_parser_primary_expression ../../gcc/gcc/cp/parser.c:4230 0x643970 cp_parser_postfix_expression ../../gcc/gcc/cp/parser.c:5814 0x64615d cp_parser_unary_expression ../../gcc/gcc/cp/parser.c:7009 0x646d3f cp_parser_binary_expression ../../gcc/gcc/cp/parser.c:7701 0x6471ff cp_parser_assignment_expression ../../gcc/gcc/cp/parser.c:7937 0x647656 cp_parser_assignment_expression ../../gcc/gcc/cp/parser.c:7987 0x647656 cp_parser_constant_expression ../../gcc/gcc/cp/parser.c:8197 0x653601 cp_parser_init_declarator ../../gcc/gcc/cp/parser.c:16520 0x653fb4 cp_parser_single_declaration ../../gcc/gcc/cp/parser.c:22652 0x656b80 cp_parser_template_declaration_after_export ../../gcc/gcc/cp/parser.c:22454 0x636882 cp_parser_member_declaration ../../gcc/gcc/cp/parser.c:19703 0x63787e cp_parser_member_specification_opt ../../gcc/gcc/cp/parser.c:19630 0x63787e cp_parser_class_specifier_1 ../../gcc/gcc/cp/parser.c:18885 0x63a220 cp_parser_class_specifier ../../gcc/gcc/cp/parser.c:19101 0x63a220 cp_parser_type_specifier ../../gcc/gcc/cp/parser.c:14080 0x64f739 cp_parser_decl_specifier_seq ../../gcc/gcc/cp/parser.c:11328 Please submit a full bug report, [etc.]