https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106212
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
a.C:39:21: error: non-constant condition for static assertion
39 | static_assert(p - q != 0);
| ~~~~~~^~~~
a.C:39:24: in 'constexpr' expansion of 'operator-(p, q).P::operator==(P(0))'
a.C:34:8: in 'constexpr' expansion of 'std::operator==<int, 1>(((const
P*)this)->P::e, <anonymous>.P::e)'
a.C:19:20: error: '(((const int*)(&<anonymous>.P::e.std::array<int,
1>::_M_elems)) == 0)' is not a constant expression
19 | { return __ptr == 0; }
| ~~~~~~^~~~