https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109321
Bug ID: 109321 Summary: [13 Regression] ICE in iterative_hash_template_arg, at cp/pt.cc:1727 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Started between 20230226 and 20230312, with -std=c++20 or -std=c++23 : $ cat z1.cc struct A; template<class C> struct B; template<class, class C=A> using D = B<C>; void f () { D() = 0; } $ g++-13-20230326 -c z1.cc -std=c++23 z1.cc: In substitution of 'template<class C> B()-> B<C> requires __is_deducible (D, B<C>) [with C = A]': z1.cc:4:15: required from here z1.cc:4:15: internal compiler error: Segmentation fault 4 | void f () { D() = 0; } | ^ 0xe24a1f crash_signal ../../gcc/toplev.cc:314 0x88209c iterative_hash_template_arg(tree_node*, unsigned int) ../../gcc/cp/pt.cc:1727 0x762f71 sat_hasher::hash(sat_entry*) ../../gcc/cp/constraint.cc:2572 0x762f71 hash_table<sat_hasher, false, xcallocator>::find_slot(sat_entry* const&, insert_option) ../../gcc/hash-table.h:435 0x762f71 satisfaction_cache::satisfaction_cache(tree_node*, tree_node*, sat_info) ../../gcc/cp/constraint.cc:2668 0x765a71 satisfy_atom ../../gcc/cp/constraint.cc:2998 0x765a71 satisfy_constraint_r ../../gcc/cp/constraint.cc:3106 0x7665f3 satisfy_normalized_constraints ../../gcc/cp/constraint.cc:3131 0x7641da satisfy_declaration_constraints ../../gcc/cp/constraint.cc:3352 0x7641da constraint_satisfaction_value ../../gcc/cp/constraint.cc:3373 0x76666a constraints_satisfied_p(tree_node*, tree_node*) ../../gcc/cp/constraint.cc:3410 0x8afef5 fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node* const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool, bool) ../../gcc/cp/pt.cc:22534 0x7251cb add_template_candidate_real ../../gcc/cp/call.cc:3594 0x725e83 add_template_candidate ../../gcc/cp/call.cc:3688 0x725e83 add_candidates ../../gcc/cp/call.cc:6596 0x72d101 add_candidates ../../gcc/cp/call.cc:4911 0x72d101 perform_overload_resolution ../../gcc/cp/call.cc:4911 0x72d4e9 perform_dguide_overload_resolution(tree_node*, vec<tree_node*, va_gc, vl_embed> const*, int) ../../gcc/cp/call.cc:4976 0x88e581 do_class_deduction ../../gcc/cp/pt.cc:30590 0x88e581 do_auto_deduction(tree_node*, tree_node*, tree_node*, int, auto_deduction_context, tree_node*, int) ../../gcc/cp/pt.cc:30715