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

            Bug ID: 98644
           Summary: [concepts] ICE in satisfaction_value, at
                    cp/constraint.cc:2825
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: arthur.j.odwyer at gmail dot com
  Target Milestone: ---

// https://godbolt.org/z/qh1zos
    template<class T> concept Signed = bool(T(1));
    static_assert(Signed<int*>);

Compile with "-std=c++20":

<source>:2:28: internal compiler error: in satisfaction_value, at
cp/constraint.cc:2825
    2 | static_assert(Signed<int*>);
      |                            ^
0x1cc31d9 internal_error(char const*, ...)
        ???:0
0x6b25f7 fancy_abort(char const*, int, char const*)
        ???:0
0x7390d2 evaluate_concept_check(tree_node*, int)
        ???:0
0x7255f4 maybe_constant_value(tree_node*, tree_node*, bool)
        ???:0
0x97ffcd finish_static_assert(tree_node*, tree_node*, unsigned int, bool, bool)
        ???:0

Another very similar ICE, even though the stack trace is different:

    // https://godbolt.org/z/rPn6vd
    bool Signed = requires { requires bool((char *)1); };

<source>:1:35: internal compiler error: in satisfaction_value, at
cp/constraint.cc:2825
    1 | bool Signed = requires { requires bool((char *)1); };
      |                          ~~~~~~~~~^~~~~~~~~~~~~~~
0x1cc31d9 internal_error(char const*, ...)
        ???:0
0x6b25f7 fancy_abort(char const*, int, char const*)
        ???:0
0x737597 tsubst_requires_expr(tree_node*, tree_node*, int, tree_node*)
        ???:0

Reply via email to