https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85258
Bug ID: 85258 Summary: [7/8 Regression] ICE with invalid range-based for-loop 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 7.1.0: ============================ template<int> void foo() { int x[8]; for (int& i, j : x) i = 0; } void bar() { foo<0>(); } ============================ bug.cc: In function 'void foo()': bug.cc:4:14: error: multiple declarations in range-based 'for' loop for (int& i, j : x) ^ bug.cc: In instantiation of 'void foo() [with int <anonymous> = 0]': bug.cc:10:10: required from here bug.cc:5:5: internal compiler error: Segmentation fault i = 0; ^ 0xebd87f crash_signal ../../gcc/gcc/toplev.c:325 0x85245d reduced_constant_expression_p(tree_node*) ../../gcc/gcc/cp/constexpr.c:1776 0x964822 tsubst_copy ../../gcc/gcc/cp/pt.c:15142 0x9654ef tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:18526 0x966768 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:17467 0x965a96 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:17771 0x971627 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:17099 0x97092e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16300 0x970f2c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16495 0x97005c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16286 0x96e71f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16583 0x96d8b8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16271 0x96d8b8 instantiate_decl(tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:23682 0x99476b instantiate_pending_templates(int) ../../gcc/gcc/cp/pt.c:23798 0x8b8e3b c_parse_final_cleanups() ../../gcc/gcc/cp/decl2.c:4725 Please submit a full bug report, [etc.]