https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66786
Bug ID: 66786
Summary: [6 Regression] ICE: Segmentation fault
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
Target Milestone: ---
% cat strong_datatypes.ii
template <typename> auto list = [](auto... xs) { [=](auto f) { f(xs...); }; };
int main() { list<int>(0); }
% c++ -c strong_datatypes.ii
strong_datatypes.ii: In instantiation of ‘auto list<int>’:
strong_datatypes.ii:2:14: required from here
strong_datatypes.ii:1:26: error: use of ‘list<int>’ before deduction of ‘auto’
template <typename> auto list = [](auto... xs) { [=](auto f) { f(xs...); }; };
^
strong_datatypes.ii: In instantiation of ‘<lambda(auto:1 ...)> [with auto:1 =
{int}; <template-parameter-1-1> = int]’:
strong_datatypes.ii:2:25: required from here
strong_datatypes.ii:1:50: internal compiler error: Segmentation fault
template <typename> auto list = [](auto... xs) { [=](auto f) { f(xs...); }; };
^
0x10b5cbd3 crash_signal
../../gcc/gcc/toplev.c:360
0x10408140 contains_struct_check
../../gcc/gcc/tree.h:2971
0x10408140 build_lambda_object(tree_node*)
../../gcc/gcc/cp/lambda.c:92
0x102186c3 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:15821
0x101f752b tsubst_expr
../../gcc/gcc/cp/pt.c:14519
0x101f8053 tsubst_expr
../../gcc/gcc/cp/pt.c:13930
0x101f7047 tsubst_expr
../../gcc/gcc/cp/pt.c:13916
0x101f7ddb tsubst_expr
../../gcc/gcc/cp/pt.c:14102
0x101f7ddb tsubst_expr
../../gcc/gcc/cp/pt.c:14102
0x10234bdf instantiate_decl(tree_node*, int, bool)
../../gcc/gcc/cp/pt.c:20586
0x10292b3b mark_used(tree_node*, int)
../../gcc/gcc/cp/decl2.c:5087
0x10175747 build_over_call
../../gcc/gcc/cp/call.c:7502
0x101882df build_op_call_1
../../gcc/gcc/cp/call.c:4297
0x101882df build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int)
../../gcc/gcc/cp/call.c:4320
0x10374c03 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**,
bool, bool, int)
../../gcc/gcc/cp/semantics.c:2409
0x102cff3f cp_parser_postfix_expression
../../gcc/gcc/cp/parser.c:6346
0x102d3a07 cp_parser_unary_expression
../../gcc/gcc/cp/parser.c:7410
0x102d4eef cp_parser_binary_expression
../../gcc/gcc/cp/parser.c:8148
0x102d595b cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:8405
0x102d9633 cp_parser_expression
../../gcc/gcc/cp/parser.c:8559
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
Clang accepts the code.