https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121981

            Bug ID: 121981
           Summary: internal compiler error: in hash, at
                    cp/constraint.cc:1999
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: ice-checking
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

Created attachment 62405
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=62405&action=edit
preprocessed source compressed with xz

I see an ICE on trunk for the attached code, compiled with -std=c++23. I don't
think it's a regression, because I see the same ICE with old trunk builds, so I
think it's just suppressed on release builds because they don't have checking
enabled.


$ ~/gcc/16/bin/g++ -std=c++23 mp.ii
In file included from
/opt/compiler-explorer/libs/mp-units/trunk/src/systems/include/mp-units/systems/si/units.h:27,
                 from
/opt/compiler-explorer/libs/mp-units/trunk/src/systems/include/mp-units/systems/si/chrono.h:30,
                 from
/opt/compiler-explorer/libs/mp-units/trunk/src/systems/include/mp-units/systems/si.h:27,
                 from /app/example.cpp:1:
/opt/compiler-explorer/libs/mp-units/trunk/src/core/include/mp-units/framework/construction_helpers.h:
In substitution of 'template<auto [requires mp_units::Reference<<placeholder>,
>] R, auto [requires mp_units::PointOriginFor<<placeholder>,
mp_units::get_quantity_spec(R)>] PO, class Rep>  requires 
RepresentationOf<Rep, mp_units::get_quantity_spec(R)> class
mp_units::quantity_point [with auto [requires
mp_units::Reference<<placeholder>, >] R =
mp_units::si::milli_<mp_units::si::kelvin>(); auto [requires
mp_units::PointOriginFor<<placeholder>, mp_units::get_quantity_spec(R)>] PO =
mp_units::si::absolute_zero(); Rep = int]':
required by substitution of 'template<class FwdRep, class Rep>  requires 
RepresentationOf<Rep, mp_units::get_quantity_spec({})> constexpr
mp_units::quantity_point<mp_units::si::milli_<mp_units::si::kelvin>(),
mp_units::si::absolute_zero(), Rep>
mp_units::point_<mp_units::si::milli_<mp_units::si::kelvin>
>::operator()(FwdRep&&) const [with FwdRep = int; Rep = int]'
/opt/compiler-explorer/libs/mp-units/trunk/src/core/include/mp-units/framework/construction_helpers.h:53:3:
 
required from here
/opt/compiler-explorer/libs/mp-units/trunk/src/systems/include/mp-units/systems/si/units.h:67:97:
 
/opt/compiler-explorer/libs/mp-units/trunk/src/core/include/mp-units/framework/construction_helpers.h:53:3:
internal compiler error: in hash, at cp/constraint.cc:1999
0x24a490d internal_error(char const*, ...)
        /home/jwakely/src/gcc/gcc/gcc/diagnostic-global-context.cc:786
0x72063f fancy_abort(char const*, int, char const*)
        /home/jwakely/src/gcc/gcc/gcc/diagnostics/context.cc:1787
0x7a56d2 sat_hasher::hash(sat_entry*)
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:1999
0x7a02df hash_table<sat_hasher, false, xcallocator>::find_slot(sat_entry*
const&, insert_option)
        /home/jwakely/src/gcc/gcc/gcc/hash-table.h:435
0x7a02df satisfaction_cache::satisfaction_cache(tree_node*, tree_node*,
sat_info)
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2096
0x7a3c2b satisfy_atom
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2435
0x7a3c2b satisfy_constraint_r
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2544
0x7a3d80 satisfy_conjunction
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2239
0x7a3d80 satisfy_constraint_r
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2540
0x7a3d80 satisfy_conjunction
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2239
0x7a3d80 satisfy_constraint_r
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2540
0x7a3d80 satisfy_conjunction
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2239
0x7a3d80 satisfy_constraint_r
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2540
0x7a38df satisfy_disjunction
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2297
0x7a38df satisfy_constraint_r
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2542
0x7a4791 satisfy_normalized_constraints
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2569
0x7a153c satisfy_declaration_constraints
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2791
0x7a153c constraint_satisfaction_value
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2812
0x7a4813 constraints_satisfied_p(tree_node*, tree_node*)
        /home/jwakely/src/gcc/gcc/gcc/cp/constraint.cc:2849
0x986a9c lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int)
        /home/jwakely/src/gcc/gcc/gcc/cp/pt.cc:10327
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to