https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82030
Bug ID: 82030
Summary: [8 Regression] ICE: Segmentation fault
Product: gcc
Version: 8.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 functional.ii
template <typename T, typename U = T> struct A { using type = U; };
template <typename F, typename... G> struct B : B<F>::type, B<G...>::type {
using type = B;
using B<F>::type::operator();
};
template <typename F> struct B<F> { using type = F; };
struct {
template <typename... F,
typename Overload = typename B<typename A<F>::type...>::type>
Overload operator()(F...){};
} a;
int main() {
auto f = a([](int) {}, [](float) {});
f({});
}
% g++ functional.ii
functional.ii: In function ‘int main()’:
functional.ii:14:7: internal compiler error: Segmentation fault
f({});
^
0x10bc6de3 crash_signal
../../gcc/gcc/toplev.c:341
0x102182fc compare_ics
../../gcc/gcc/cp/call.c:9564
0x10220a6b joust
../../gcc/gcc/cp/call.c:9993
0x10222993 joust
../../gcc/gcc/cp/call.c:10431
0x10222993 tourney
../../gcc/gcc/cp/call.c:10395
0x1023040b build_op_call_1
../../gcc/gcc/cp/call.c:4543
0x1023040b build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int)
../../gcc/gcc/cp/call.c:4585
0x1049fc6b finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**,
bool, bool, int)
../../gcc/gcc/cp/semantics.c:2502
0x103cdbd7 cp_parser_postfix_expression
../../gcc/gcc/cp/parser.c:7124
0x103ee65f cp_parser_unary_expression
../../gcc/gcc/cp/parser.c:8248
0x103b49e3 cp_parser_cast_expression
../../gcc/gcc/cp/parser.c:9016
0x103b5307 cp_parser_binary_expression
../../gcc/gcc/cp/parser.c:9117
0x103b5da7 cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:9404
0x103b9a77 cp_parser_expression
../../gcc/gcc/cp/parser.c:9573
0x103ba3f7 cp_parser_expression_statement
../../gcc/gcc/cp/parser.c:11071
0x103c843f cp_parser_statement
../../gcc/gcc/cp/parser.c:10887
0x103c97a3 cp_parser_statement_seq_opt
../../gcc/gcc/cp/parser.c:11214
0x103c9927 cp_parser_compound_statement
../../gcc/gcc/cp/parser.c:11168
0x103e776f cp_parser_function_body
../../gcc/gcc/cp/parser.c:21624
0x103e776f cp_parser_ctor_initializer_opt_and_function_body
../../gcc/gcc/cp/parser.c:21660