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

--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
For reference, trunk with -std=c++20:
  https://godbolt.org/z/3q6b9dc6a 
(output as per comment #0).

With my patches for PR other/116253, and with
-fdiagnostics-set-output=text:experimental-nesting=yes -std=c++20
-fconcepts-diagnostics-depth=3 (but without attempting to special-case standard
concepts), the output is:

../../src/gcc/testsuite/g++.dg/concepts/P2429R0-1.C: In function ‘int main()’:
../../src/gcc/testsuite/g++.dg/concepts/P2429R0-1.C:6:4: error: no matching
function for call to ‘f(std::nullptr_t)’
    6 |   f(nullptr);
      |   ~^~~~~~~~~
  • we found 1 candidate
    • candidate 1: ‘template<class N>  requires  integral<N> void f(N)’
      ../../src/gcc/testsuite/g++.dg/concepts/P2429R0-1.C:4:6:
          4 | void f(N n);
            |      ^
      • template argument deduction/substitution failed:
        • constraints not satisfied
In file included from ../../src/gcc/testsuite/g++.dg/concepts/P2429R0-1.C:1:
          • ../x86_64-pc-linux-gnu/libstdc++-v3/include/concepts: In
substitution of ‘template<class N>  requires  integral<N> void f(N) [with N =
std::nullptr_t]’:
          • required from here
            ../../src/gcc/testsuite/g++.dg/concepts/P2429R0-1.C:6:4:   
                6 |   f(nullptr);
                  |   ~^~~~~~~~~
          • required for the satisfaction of ‘integral<N>’ [with N =
std::nullptr_t]
            ../x86_64-pc-linux-gnu/libstdc++-v3/include/concepts:109:13:   
              109 |     concept integral = is_integral_v<_Tp>;
                  |             ^~~~~~~~
          • the expression ‘is_integral_v<_Tp> [with _Tp = std::nullptr_t]’
evaluated to ‘false’
            ../x86_64-pc-linux-gnu/libstdc++-v3/include/concepts:109:24:
              109 |     concept integral = is_integral_v<_Tp>;
                  |                        ^~~~~~~~~~~~~~~~~~

Reply via email to