about summary refs log tree commit diff
path: root/string
diff options
context:
space:
mode:
Diffstat (limited to 'string')
-rw-r--r--string/rawmemchr.c8
1 files changed, 8 insertions, 0 deletions
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)