Message ID | alpine.LFD.2.21.2008311421160.20055@redsun52.ssa.fujisawa.hgst.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2] string: Fix GCC 11 `-Werror=stringop-overread' error | expand |
On Mon, 31 Aug 2020, Maciej W. Rozycki via Libc-alpha wrote: > Fix a compilation error: > > In function '__rawmemchr', > inlined from '__rawmemchr' at rawmemchr.c:27:1: > rawmemchr.c:36:12: error: 'memchr' specified bound 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overread] > 36 | return memchr (s, c, (size_t)-1); > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > ../o-iterator.mk:9: recipe for target '.../string/rawmemchr.o' failed > > introduced with GCC 11 commit d14c547abd48 ("Add -Wstringop-overread > for reading past the end by string functions."). OK, please commit. Both the conditional and the version number in the macro call seem correct in this case.
I've now committed this patch for Maciej.
On Mon, 7 Sep 2020, Joseph Myers wrote:
> I've now committed this patch for Maciej.
Thank you, Joseph!
Maciej
Index: glibc/string/rawmemchr.c =================================================================== --- glibc.orig/string/rawmemchr.c +++ glibc/string/rawmemchr.c @@ -32,6 +32,10 @@ RAWMEMCHR (const void *s, int c) PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow="); #endif +#if __GNUC_PREREQ (11, 0) + /* Likewise GCC 11, with a different warning option. */ + DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread"); +#endif if (c != '\0') return memchr (s, c, (size_t)-1); DIAG_POP_NEEDS_COMMENT;