https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95386
Bug ID: 95386 Summary: internal compiler error: in satisfaction_value, while compiling function with a requires clause Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jpalecek at web dot de Target Milestone: --- Created attachment 48627 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48627&action=edit C-reduced code reproducing the problem Hello, while trying to call a function with this signature template <class T> void g(T&& a) requires !std::is_lvalue_reference<T>() I get an internal compiler error: rref-test.cpp:48:6: internal compiler error: in satisfaction_value, at cp/constraint.cc:2503 48 | g(a); This doesn't happen if I don't use the implicit conversion to bool in the requires clause: template <class T> void g(T&& a) requires !std::is_lvalue_reference<T>::value is OK. The minimized (C-reduced) reproducing code is in the attachment. It is a bit funny as it is not syntactically a complete program, but does reproduce the problem anyway.