From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42]) by sourceware.org (Postfix) with ESMTPS id C8759385702F for ; Mon, 31 Aug 2020 13:26:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C8759385702F IronPort-SDR: ZGtPaYc9Qfa8XB/KNmjm2jYnh5DRWj7kf0pS4+le0m0fq8DH9SMjfnJAcxJkE2qYe0X4wmHSm+ UalGhNfzGd2StOG3CalEBeGaZFmA3ofJCY3IJn1kdHa9Ev56+Z/mJbeo/dwmD8yfFvddVG8Cvh ZVEjYg3xtvoM6A8VRFH4SMZJ7dVzREmyhEdv31Gn7Qd06iP7Shoj53ykHJNI9EMBEh5BnvGLsw W95ExHrLW9RxsJN4ZZDqfSZ03cbTq2jKFhYMhvmSXVIPoiAfPAwW4UX2p2cnfqTJ6zpM63PJFg Tfk= X-IronPort-AV: E=Sophos;i="5.76,375,1592841600"; d="scan'208";a="146159707" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 31 Aug 2020 21:26:50 +0800 IronPort-SDR: u7zbjGjj2ptLySiDktpXp8+kYXlXmzebhOtaUUYBYqTHLpmEuJnokLI/lTKiK/a0+kOX/kbTHX MT/hO+kEFXcg== Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2020 06:14:19 -0700 IronPort-SDR: 9MXZEnHODanJifZpuyC4BktiT7DmOxBpG0HG8Vjbyk4A0ClfcrY3H+iv51WMOdLyB4VEiXtVbS 0/hmORS5Q27Q== WDCIronportException: Internal Received: from unknown (HELO redsun52) ([10.149.66.28]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2020 06:26:51 -0700 Date: Mon, 31 Aug 2020 14:26:47 +0100 (BST) From: "Maciej W. Rozycki" To: libc-alpha@sourceware.org Subject: [PATCH v2] string: Fix GCC 11 `-Werror=stringop-overread' error Message-ID: User-Agent: Alpine 2.21 (LFD 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_ASCII_DIVIDERS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Aug 2020 13:26:53 -0000 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."). --- Changes from v1: - Wrap the pragma into `__GNUC_PREREQ (11, 0)'. --- string/rawmemchr.c | 4 ++++ 1 file changed, 4 insertions(+) glibc-stringop-overread.diff 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;