mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-05 12:40:55 +08:00
Fix rawmemchr build with GCC 8.
The default rawmemchr implementation uses memchr with size (size_t)-1, which produces a warning with current GCC mainline. The warning seems reasonable for normal code, so this patch uses the DIAG_* macros to disable it. Tested (compilation of glibc only) with build-many-glibcs.py for arm-linux-gnueabi and powerpc64le-linux-gnu, two architectures for which the build was previously failing. Note that the glibc testsuite will still fail to build with GCC mainline because of <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80669>. * string/rawmemchr.c: Include <libc-diag.h>. (RAWMEMCHR): Disable -Wstringop-overflow around call to memchr with size (size_t)-1.
This commit is contained in:
parent
d08a482bc2
commit
8fa11673d6
@ -1,3 +1,9 @@
|
|||||||
|
2017-05-10 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* string/rawmemchr.c: Include <libc-diag.h>.
|
||||||
|
(RAWMEMCHR): Disable -Wstringop-overflow around call to memchr
|
||||||
|
with size (size_t)-1.
|
||||||
|
|
||||||
2017-05-09 Joseph Myers <joseph@codesourcery.com>
|
2017-05-09 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Remove file.
|
* sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Remove file.
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <libc-diag.h>
|
||||||
|
|
||||||
#ifndef RAWMEMCHR
|
#ifndef RAWMEMCHR
|
||||||
# define RAWMEMCHR __rawmemchr
|
# define RAWMEMCHR __rawmemchr
|
||||||
@ -25,8 +26,15 @@
|
|||||||
void *
|
void *
|
||||||
RAWMEMCHR (const void *s, int c)
|
RAWMEMCHR (const void *s, int c)
|
||||||
{
|
{
|
||||||
|
DIAG_PUSH_NEEDS_COMMENT;
|
||||||
|
#if __GNUC_PREREQ (7, 0)
|
||||||
|
/* GCC 8 warns about the size passed to memchr being larger than
|
||||||
|
PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */
|
||||||
|
DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow=");
|
||||||
|
#endif
|
||||||
if (c != '\0')
|
if (c != '\0')
|
||||||
return memchr (s, c, (size_t)-1);
|
return memchr (s, c, (size_t)-1);
|
||||||
|
DIAG_POP_NEEDS_COMMENT;
|
||||||
return (char *)s + strlen (s);
|
return (char *)s + strlen (s);
|
||||||
}
|
}
|
||||||
libc_hidden_def (__rawmemchr)
|
libc_hidden_def (__rawmemchr)
|
||||||
|
Loading…
Reference in New Issue
Block a user