gnulib-manywarnings: Enable -Wzero-as-null-pointer-constant

Alejandro Colomar alx@kernel.org
Thu Nov 14 16:49:56 GMT 2024


Hi Bruno,

On Thu, Nov 14, 2024 at 04:14:26PM GMT, Bruno Haible wrote:
> I promised:
> >   - see how this new warning behaves on the Gnulib source code

Thanks!

> The two good news are:
>   - The warning is really helpful. With it, I could find all relevant uses of
>     '0' quickly. Patch attached and committed.
>   - There were no false positives.

Lovely!  :-)

> However, there are warnings that are not in the responsibility of a package
> maintainer:
> 
>   * Anywhere a pthread_mutex_t is initialized, the warning appears. This is
>     because on glibc, the macro __PTHREAD_MUTEX_INITIALIZER(__kind)
>     expands to
>       0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
>     It should better expand to
>       0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }

It would be interesting to send a patch to glibc for removing all uses
of 0 as a null pointer constant within glibc, including that one.

I can try this, unless someone beats me to it.

>   * gperf generated code has these warnings:
>     unicase/special-casing-table.gperf:171:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
>     unictype/categ_byname.gperf:115:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
>     unictype/incb_byname.gperf:60:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
>     unictype/joininggroup_byname.gperf:131:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
>     unictype/pr_byname.gperf:114:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
>     unictype/scripts_byname.gperf:160:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
>     uninorm/composition-table.gperf:995:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]

Same for gperf.  Would you mind patching that one?

> These can only be fixed with a new glibc release and a new gperf release.
> 
> So, as things stand now, we can recommend the warning option to package
> maintainers. But I am not in favour of letting Gnulib enable it by default,
> since it will invariably lead to warnings (in the two cases mentioned above)
> that the maintainer cannot silence. Only once there have been glibc + gperf
> releases and we have waited 2 years until most maintainers have a system with
> these newer releases, will it make sense to enable it by default.

Makes sense.

> 
> Bruno

Have a lovely day!
Alex

-- 
<https://www.alejandro-colomar.es/>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20241114/e1bbf6ec/attachment.sig>


More information about the Libc-alpha mailing list