From patchwork Mon Aug 31 13:26:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Maciej W. Rozycki" X-Patchwork-Id: 40344 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2E408386180C; Mon, 31 Aug 2020 13:26:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2E408386180C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1598880415; bh=z2CkLKs3vgtB1Abzgh1XK3DX9ZOfrX6dkR+cEDfy8g8=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=kMDFDFG8mjEa9tRuzXDXJKP4Ipo1Joyda9hnjhINsdaOPAIgP7C1bRukoh7Aygnj0 +feiy+iXR6mDjf2zKhUPdMcuvSsqeuyCpsfpWXM0D5KH5Q44Wr2z+2iSj28yWkUYlt OreytMZHp9ljuYH6PIQuNqQiHyaHKaCPcjzKYStQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org 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) 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 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-Patchwork-Original-From: "Maciej W. Rozycki via Libc-alpha" From: "Maciej W. Rozycki" Reply-To: "Maciej W. Rozycki" Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" 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;