diff options
Diffstat (limited to 'string/tst-cmp.c')
-rw-r--r-- | string/tst-cmp.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/string/tst-cmp.c b/string/tst-cmp.c index 1a7f1c8b89..3b9f7b2506 100644 --- a/string/tst-cmp.c +++ b/string/tst-cmp.c @@ -26,6 +26,7 @@ #include <stdint.h> #include <stdlib.h> #include <string.h> +#include <libc-diag.h> static int signum (int val) @@ -98,13 +99,27 @@ strncasecmp_64 (const char *left, const char *right) static int strncmp_max (const char *left, const char *right) { + DIAG_PUSH_NEEDS_COMMENT; +#if __GNUC_PREREQ (7, 0) + /* GCC 9 warns about the size passed to strncmp being larger than + PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */ + DIAG_IGNORE_NEEDS_COMMENT (9, "-Wstringop-overflow="); +#endif return strncmp (left, right, SIZE_MAX); + DIAG_POP_NEEDS_COMMENT; } static int strncasecmp_max (const char *left, const char *right) { + DIAG_PUSH_NEEDS_COMMENT; +#if __GNUC_PREREQ (7, 0) + /* GCC 9 warns about the size passed to strncasecmp being larger + than PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */ + DIAG_IGNORE_NEEDS_COMMENT (9, "-Wstringop-overflow="); +#endif return strncasecmp (left, right, SIZE_MAX); + DIAG_POP_NEEDS_COMMENT; } int |