[Bug c++/95700] read-md.c: "missing sentinel in function call" when building gcc with musl

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jul 2 10:39:36 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95700

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Ilya Leoshkevich <iii@gcc.gnu.org>:

https://gcc.gnu.org/g:d59a576b8b5e12c3a56f0262912090e2921f5daa

commit r11-1785-gd59a576b8b5e12c3a56f0262912090e2921f5daa
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:   Mon Jun 29 20:36:03 2020 +0200

    Redefine NULL to nullptr

    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.

    While it is possible to fix this by replacing NULL sentinels with
    nullptrs, such approach would generate backporting conflicts, therefore
    simply redefine NULL to nullptr at the end of system.h, where it would
    not confuse system headers.

    gcc/ChangeLog:

    2020-06-30  Ilya Leoshkevich  <iii@linux.ibm.com>

            PR bootstrap/95700
            * system.h (NULL): Redefine to nullptr.


More information about the Gcc-bugs mailing list