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

Serge Guelton sguelton@redhat.com
Tue Nov 3 16:04:51 GMT 2020


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


> An alternative would be to drop the warning from the glibc headers
> because current compilers do not need it.
> 
> 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