https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100903
--- Comment #13 from Christopher Head <headch at gmail dot com> --- Could the error message be made more readable by trying to call an undefined-but-declared non-consteval function inside the consteval context in the error case, rather than throwing? The name of the function could then be the error message? For example: struct __unspec { static void __comparisonCategoryComparedToNonZeroValue(); template<same_as<int> _Tp> consteval __unspec(_Tp __z) noexcept { if (__z != 0) __comparisonCategoryComparedToNonZeroValue(); } }; You then get the error “call to non-‘constexpr’ function ‘static void __unspec::__comparisonCategoryComparedToNonZeroValue()’”