https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82039
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-08-31 Component|libstdc++ |c++ Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- The system headers must be valid in both C++98 and C++11 (and all other modes) so changing the 0 to nullptr is not an option, and so warning about it isn't useful to anybody (the user can't change the system header, and the system header can't use nullptr). I will change it to static_cast<void*>(0) to suppress the warning, but I think the bug here is that the location of the warning is in user code where the default argument is used, not the system header where the default argument is defined.