This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/58568] New: [4.8/4.9 Regression] ICE with lambda in invalid template variable definition
- From: "reichelt at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 28 Sep 2013 20:07:55 +0000
- Subject: [Bug c++/58568] New: [4.8/4.9 Regression] ICE with lambda in invalid template variable definition
- Auto-submitted: auto-generated
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.]