diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | string/rawmemchr.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index a772fce69f..ca563394c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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> * sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Remove file. diff --git a/string/rawmemchr.c b/string/rawmemchr.c index 54e8dcd294..42a3f8aaba 100644 --- a/string/rawmemchr.c +++ b/string/rawmemchr.c @@ -16,6 +16,7 @@ <http://www.gnu.org/licenses/>. */ #include <string.h> +#include <libc-diag.h> #ifndef RAWMEMCHR # define RAWMEMCHR __rawmemchr @@ -25,8 +26,15 @@ void * 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') return memchr (s, c, (size_t)-1); + DIAG_POP_NEEDS_COMMENT; return (char *)s + strlen (s); } libc_hidden_def (__rawmemchr) |