[PATCH] Declare __warn_memset_zero_len internally for newer gcc [bz #25399]

Florian Weimer fweimer@redhat.com
Tue Nov 3 16:59:33 GMT 2020


* Serge Guelton:

> On Tue, Nov 03, 2020 at 05:05:54PM +0100, Florian Weimer wrote:
>> * Serge Guelton:
>> 
>> > On Tue, Nov 03, 2020 at 04:05:11PM +0100, Florian Weimer wrote:
>> >> * Siddhesh Poyarekar via Libc-alpha:
>> >> 
>> >> > The __warn_memset_zero_len symbol, used to issue a linker warning
>> >> > about zero length memset calls, is included in warning-nop.o only when
>> >> > glibc is built with an older gcc, which is incorrect.  When a program
>> >> > calling memset with zero length is built with either gcc < 5.0 or with
>> >> > clang (which advertises __GNUC__ as 4), it results in a link failure
>> >> > due to not finding the symbol in libc_nonshared.a.
>> >> >
>> >> > Fill in this gap by declaring __warn_memset_zero_len for newer gcc as
>> >> > well so that it is always available in libc_nonshared.a for any
>> >> > compiler to link against.
>> >> 
>> >> Does Clang have its own warning for this?
>> >
>> > Clang has -Wmemset-transposed-args. The warning is emitted during smeantic
>> > analysis, catching two patterns: 1. a size argument of 0 and 2. when the
>> > constant argument is a sizeof
>> 
>> Is it enabled by -Wall?
>
> Yes

Then I don't think we need the manual warning in the glibc headers.

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill



More information about the Libc-alpha mailing list