https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82115
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed, but for some reason hard to bisect. Stack overflow happens here: #15 0x00000000007922d8 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24095 #16 0x0000000000792192 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:23937 #17 0x0000000000791ce7 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24011 #18 0x0000000000791ce7 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24011 #19 0x0000000000792396 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24046 #20 0x00000000007922d8 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24095 #21 0x0000000000792192 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:23937 #22 0x0000000000791ce7 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24011 #23 0x0000000000791ce7 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24011 #24 0x0000000000792396 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24046 #25 0x00000000007922d8 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24095 #26 0x0000000000792192 in value_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:23937 #27 0x00000000007949c9 in instantiation_dependent_expression_p (expression=<optimized out>) at ../../gcc/cp/pt.c:24519 #28 0x0000000000650ca7 in is_nondependent_constant_expression (t=0x7ffff697e7e0) at ../../gcc/cp/constexpr.c:5907 #29 0x0000000000651113 in fold_non_dependent_expr (t=t@entry=0x7ffff697e7e0) at ../../gcc/cp/constexpr.c:4933 #30 0x000000000078b712 in build_non_dependent_expr (expr=expr@entry=0x7ffff697e7e0) at ../../gcc/cp/pt.c:24955 #31 0x00000000007fe848 in finish_expr_stmt (expr=expr@entry=0x7ffff697e7e0) at ../../gcc/cp/semantics.c:693 #32 0x000000000074a5f5 in cp_parser_expression_statement (parser=parser@entry=0x7ffff7feccf0, in_statement_expr=in_statement_expr@entry=0x0) at ../../gcc/cp/parser.c:11127 #33 0x0000000000751bd4 in cp_parser_statement (parser=parser@entry=0x7ffff7feccf0, in_statement_expr=in_statement_expr@entry=0x0, in_compound=<optimized out>, in_compound@entry=true, if_p=if_p@entry=0x0, chain=chain@entry=0x0, loc_after_labels=loc_after_labels@entry=0x0) at ../../gcc/cp/parser.c:10887 #34 0x0000000000752de1 in cp_parser_statement_seq_opt (parser=parser@entry=0x7ffff7feccf0, in_statement_expr=in_statement_expr@entry=0x0) at ../../gcc/cp/parser.c:11214 #35 0x0000000000752eb8 in cp_parser_compound_statement (parser=parser@entry=0x7ffff7feccf0, in_statement_expr=in_statement_expr@entry=0x0, bcs_flags=bcs_flags@entry=0, function_body=function_body@entry=true) at ../../gcc/cp/parser.c:11168 #36 0x000000000076c719 in cp_parser_function_body (in_function_try_block=false, parser=0x7ffff7feccf0) at ../../gcc/cp/parser.c:21622 #37 cp_parser_ctor_initializer_opt_and_function_body (parser=parser@entry=0x7ffff7feccf0, in_function_try_block=in_function_try_block@entry=false) at ../../gcc/cp/parser.c:21660 #38 0x000000000076e07b in cp_parser_function_definition_after_declarator (parser=parser@entry=0x7ffff7feccf0, inline_p=inline_p@entry=false) at ../../gcc/cp/parser.c:26496 #39 0x000000000076ed5e in cp_parser_function_definition_from_specifiers_and_declarator (declarator=<optimized out>, attributes=0x0, decl_specifiers=0x7fffffffd610, parser=0x7ffff7feccf0) at ../../gcc/cp/parser.c:26410 #40 cp_parser_init_declarator (parser=parser@entry=0x7ffff7feccf0, decl_specifiers=decl_specifiers@entry=0x7fffffffd610, checks=checks@entry=0x0, function_definition_allowed_p=function_definition_allowed_p@entry=true, member_p=member_p@entry=false, declares_class_or_enum=<optimized out>, function_definition_p=0x7fffffffd60b, maybe_range_for_decl=0x0, init_loc=0x0, auto_result=0x0) at ../../gcc/cp/parser.c:19374 #41 0x00000000007749fb in cp_parser_single_declaration (parser=parser@entry=0x7ffff7feccf0, checks=checks@entry=0x0, member_p=member_p@entry=false, explicit_specialization_p=explicit_specialization_p@entry=false, friend_p=friend_p@entry=0x7fffffffd6ef) at ../../gcc/cp/parser.c:26953 #42 0x0000000000774bed in cp_parser_template_declaration_after_parameters (parser=parser@entry=0x7ffff7feccf0, parameter_list=parameter_list@entry=0x7ffff69882e0, member_p=member_p@entry=false) at ../../gcc/cp/parser.c:26556 #43 0x0000000000775577 in cp_parser_explicit_template_declaration (member_p=false, parser=0x7ffff7feccf0) at ../../gcc/cp/parser.c:26792 #44 cp_parser_template_declaration_after_export (parser=parser@entry=0x7ffff7feccf0, member_p=<optimized out>) at ../../gcc/cp/parser.c:26811 #45 0x0000000000775899 in cp_parser_template_declaration (parser=parser@entry=0x7ffff7feccf0, member_p=member_p@entry=false) at ../../gcc/cp/parser.c:14899 #46 0x000000000077b8ba in cp_parser_declaration (parser=parser@entry=0x7ffff7feccf0) at ../../gcc/cp/parser.c:12652 #47 0x000000000077bbec in cp_parser_declaration_seq_opt (parser=parser@entry=0x7ffff7feccf0) at ../../gcc/cp/parser.c:12579 #48 0x000000000077befb in cp_parser_translation_unit (parser=0x7ffff7feccf0) at ../../gcc/cp/parser.c:4387 #49 c_parse_file () at ../../gcc/cp/parser.c:38799 #50 0x00000000008c3c47 in c_common_parse_file () at ../../gcc/c-family/c-opts.c:1106 #51 0x0000000000d9dd4f in compile_file () at ../../gcc/toplev.c:471 #52 0x00000000005f22f7 in do_compile () at ../../gcc/toplev.c:2037 #53 toplev::main (this=this@entry=0x7fffffffd92e, argc=<optimized out>, argc@entry=15, argv=<optimized out>, argv@entry=0x7fffffffda28) at ../../gcc/toplev.c:2172 #54 0x00000000005f47db in main (argc=15, argv=0x7fffffffda28) at ../../gcc/main.c:39 Breakpoint 1, value_dependent_expression_p (expression=0x7ffff69753d8) at ../../gcc/cp/pt.c:23889 23889 { (gdb) p print_generic_expr(stderr, expression, 0) {.u=0}$11 = void (gdb) c Continuing. Breakpoint 1, value_dependent_expression_p (expression=0x7ffff6833270) at ../../gcc/cp/pt.c:23889 23889 { (gdb) p print_generic_expr(stderr, expression, 0) 0$12 = void (gdb) c Continuing. Breakpoint 1, value_dependent_expression_p (expression=0x7ffff6988200) at ../../gcc/cp/pt.c:23889 23889 { (gdb) p print_generic_expr(stderr, expression, 0) &b.D.2295.u$13 = void (gdb) c Continuing. Breakpoint 1, value_dependent_expression_p (expression=0x7ffff68129c0) at ../../gcc/cp/pt.c:23889 23889 { (gdb) p print_generic_expr(stderr, expression, 0) b.D.2295.u$14 = void (gdb) c Continuing. Breakpoint 1, value_dependent_expression_p (expression=0x7ffff6812a50) at ../../gcc/cp/pt.c:23889 23889 { (gdb) p print_generic_expr(stderr, expression, 0) b.D.2295$15 = void (gdb) c Continuing. Breakpoint 1, value_dependent_expression_p (expression=0x7ffff697e7e0) at ../../gcc/cp/pt.c:23889 23889 { (gdb) p print_generic_expr(stderr, expression, 0) b$16 = void (gdb) c Continuing.