https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70808
Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org, | |paolo.carlini at oracle dot com --- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> --- I spent only a few minutes on this and I'm not at all sure it's a bug. As I read the standard - and our implementation - we are doing value-initializaation here. In turn, for a scalar type like std::nullptr_t, that means zero-initialization (11.6/6), which, in turn, means converting the integer literal 0 to T, thus the warning. If there is a mistake in my reasoning above, adding a special case to our implementation would be easy, I think.