http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59271
Bug ID: 59271 Summary: a.C:16:21: internal compiler error: in strip_typedefs, at cp/tree.c:1315 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: darpeer at hotmail dot com void f(int n) { int a[n]; for (auto& i : a) { i = &i - a; } [&a] (auto m) { for (auto i : a) { cout << i << endl; } return m; }; } g++ -std=c++1y -ggdb3 -o a a.C a.C: In lambda function: a.C:16:21: internal compiler error: in strip_typedefs, at cp/tree.c:1315 for (auto i : a) ^ 0x74b642 strip_typedefs(tree_node*) ../../trunk/gcc/cp/tree.c:1315 0x74b221 strip_typedefs(tree_node*) ../../trunk/gcc/cp/tree.c:1190 0x5e1b22 canonicalize_type_argument ../../trunk/gcc/cp/pt.c:6231 0x6278f9 unify ../../trunk/gcc/cp/pt.c:17445 0x6301f8 unify_one_argument ../../trunk/gcc/cp/pt.c:16116 0x624fe9 type_unification_real ../../trunk/gcc/cp/pt.c:16188 0x638d02 do_auto_deduction(tree_node*, tree_node*, tree_node*) ../../trunk/gcc/cp/pt.c:21418 0x68e4b3 build_range_temp ../../trunk/gcc/cp/parser.c:10068 0x6c1ddb do_range_for_auto_deduction ../../trunk/gcc/cp/parser.c:10091 0x6c1ddb cp_parser_range_for ../../trunk/gcc/cp/parser.c:10046 0x6c1ddb cp_parser_for ../../trunk/gcc/cp/parser.c:9970 0x6c1ddb cp_parser_iteration_statement ../../trunk/gcc/cp/parser.c:10436 0x6a0259 cp_parser_statement ../../trunk/gcc/cp/parser.c:9297 0x6a1419 cp_parser_statement_seq_opt ../../trunk/gcc/cp/parser.c:9674 0x6a2b18 cp_parser_lambda_body ../../trunk/gcc/cp/parser.c:9178 0x6a2b18 cp_parser_lambda_expression ../../trunk/gcc/cp/parser.c:8693 0x6a2b18 cp_parser_primary_expression ../../trunk/gcc/cp/parser.c:4309 0x6a49e9 cp_parser_postfix_expression ../../trunk/gcc/cp/parser.c:5908 0x6a71c8 cp_parser_unary_expression ../../trunk/gcc/cp/parser.c:7109 0x6a7e5f cp_parser_binary_expression ../../trunk/gcc/cp/parser.c:7813 Please submit a full bug report, with preprocessed source if appropriate.