On 24/06/20 12:31 +0200, Ilya Leoshkevich wrote:
Bootstrapped and regtested on x86_64-redhat-linux, ppc64le-redhat-linux
and s390x-redhat-linux.

Ok for master?

---

Bootstrap with musl libc fails with numerous "missing sentinel in
function call" errors.  This is because musl defines NULL as 0L for C++,
but gcc requires sentinel value to be a pointer or __null.

Jonathan Wakely says:

   To be really safe during stage 1, GCC should not use NULL as a
   pointer sentinel in C++ code anyway.

   The bootstrap compiler could define it to 0 or 0u, neither of which
   is guaranteed to be OK to pass as a varargs sentinel where a null
   pointer is expected.  Any of (void*)0 or (void*)NULL or nullptr
   would be safe.

Therefore, fix by replacing NULL sentinels with nullptr.

For some additional context, the C++ standard guarantees that passing
nullptr to a varargs function will convert to (void*)0. That has been
true since nullptr was added in C++11.


Reply via email to