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

--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Here's a testcase which illustrates that the fix must happen during
normalization, not during satisfaction, since after normalization we don't know
which concepts we looked through to yield the given atom:

template<class T, T X>
concept C = (X != 0);

template<class T, T X>
concept D = C<int, X>;

template<auto X>
concept E = D<unsigned, X>;

static_assert(E<-1>); // should fail due to implicit conversion from '-1' to
unsigned

Reply via email to