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

            Bug ID: 92541
           Summary: ICE when concept requires contextual conversion to
                    bool
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
            Blocks: 67491
  Target Milestone: ---

template<typename T> struct A
{
  static constexpr bool value = true;

  explicit operator bool() const { return value; }
};

template<typename T> concept foo = A<T>() || A<T>();

static_assert(foo<int>);



Compiled with -std=gnu++2a this crashes:

concepts-ice.cc:11:15: error: concept satisfaction failed
   11 | static_assert(foo<int>);
      |               ^~~~~~~~
g++: internal compiler error: Segmentation fault signal terminated program
cc1plus
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
[Bug 67491] [meta-bug] concepts issues

Reply via email to