https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123134
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2025-12-15
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Keywords| |accepts-invalid
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
EDG accepts this too, but I think GCC and EDG are wrong and this is
accepts-invalid.
[conv.ptr] says "A null pointer constant is an integer literal (5.13.2) with
value zero or a prvalue of type std::nullptr_t."
0UL is a null pointer constant, but (unsigned long)0 is not a literal, it's a
prvalue of type unsigned long, and that's not a null pointer constant.