From patchwork Fri Nov 11 14:36:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 18851 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp776699wru; Fri, 11 Nov 2022 06:37:39 -0800 (PST) X-Google-Smtp-Source: AA0mqf5D4E80D9W65Wn0Mpm5WJ+MmLqr65Mqpd4UGdZ/zE09N9SqAtgNUk9lQdV3qzuiiET9CRrL X-Received: by 2002:a05:6402:c12:b0:461:9cbd:8fba with SMTP id co18-20020a0564020c1200b004619cbd8fbamr1763240edb.19.1668177459795; Fri, 11 Nov 2022 06:37:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668177459; cv=none; d=google.com; s=arc-20160816; b=IYTypy++XvsR6nmktxehsPi6CEZQGWMUuCaeKgWlZ8QvLSJC7m4d0sYYSeccqQWEEV E0cPCQi54jm1qeNQ43QFqHxTIg8N4G3SZcaz4bIeRehouPk7z9+2B9pOgk99uxBQjKfI zx5oHpY1YdG2ArvMa17tGv+IRwlPNCv4S4kc6rwkoFYajZedglIrrRNet1++zS+vx3fm 5GiZJcqhTItqfGy7YLI9JbLBbYzYUVb6pSjraX0RQWb5jp3q94OkIPgENj+Adg51GTOG szXLL108YPs6EANBwaDGWsa1YPkDEJe+L4azISHhGOKH7398mTbPiReF4MMSMDqTVZws EDAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:message-id :mime-version:subject:to:date:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=TzEiVNbGJhf6yWFNoicenv1sz11qSESPbeFGAz1dVkQ=; b=ZdqEPOUKow8eBj30xnbVvkuEzcg6hI4W4UWvaQm8GsSZ2hr1d3yNrO0cA+YIUqq8Kp hTqooYJSs1cAodAWrk5QEqwJSTaYJj86olluXg+lvkyrl+UM1E/fnVoY2reOiZJANn6P 71f7KzsnZkhfS5avHZ7BoGZMsqAe8vIo3YJFLgg54fnDqYxtSXtocM9Gw0sxptYiLj7/ 1Lh2r1PfuSQ/0jnD3eBE0e6cjndySSBLzoR9Na4df8HHZwMw2g2PeP4oRP7GTtj9BDOh gW6q1HlzjsJxCN7DxLiqN9smGdg4bpDtrqkIh5ew/UBfeD+2GncRyvb2JXtAYUXXv++j F6tw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=kiBx+zjH; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id fi5-20020a1709073ac500b007ade14a74b9si1304726ejc.660.2022.11.11.06.37.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Nov 2022 06:37:39 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=kiBx+zjH; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 40047388A414 for ; Fri, 11 Nov 2022 14:36:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 40047388A414 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668177419; bh=TzEiVNbGJhf6yWFNoicenv1sz11qSESPbeFGAz1dVkQ=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=kiBx+zjHtexEitMgs3G/ILavgo6PgMWDrDnisSWzRrsdb4urz2kUf29oAhaBfEnP3 DhbWMB/vySoEiNmWmBhSgrFURccbkw0G5JTtZY3vIj17rpU4ZOpZJP3Z9SlQ3JMRGV 3TYjk/ZRTyZf6ug20yxQJqyAaLPvwicnibsefVow= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 737473858438 for ; Fri, 11 Nov 2022 14:36:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 737473858438 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A1B6F219B2 for ; Fri, 11 Nov 2022 14:36:14 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8F25313357 for ; Fri, 11 Nov 2022 14:36:14 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id QRbMId5dbmPrFAAAMHmgww (envelope-from ) for ; Fri, 11 Nov 2022 14:36:14 +0000 Date: Fri, 11 Nov 2022 15:36:14 +0100 (CET) To: gcc-patches@gcc.gnu.org Subject: [PATCH] tree-optimization/107554 - fix ICE in stlen optimization MIME-Version: 1.0 Message-Id: <20221111143614.8F25313357@imap2.suse-dmz.suse.de> X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Richard Biener via Gcc-patches From: Richard Biener Reply-To: Richard Biener Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749210848484159946?= X-GMAIL-MSGID: =?utf-8?q?1749210848484159946?= The following fixes a wrongly typed variable causing an ICE. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/107554 * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): Use unsigned HOST_WIDE_INT type for the strlen. * gcc.dg/pr107554.c: New testcase. Co-Authored-By: Nikita Voronov --- gcc/testsuite/gcc.dg/pr107554.c | 12 ++++++++++++ gcc/tree-ssa-strlen.cc | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/pr107554.c diff --git a/gcc/testsuite/gcc.dg/pr107554.c b/gcc/testsuite/gcc.dg/pr107554.c new file mode 100644 index 00000000000..8bbe6b07ae9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr107554.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O -foptimize-strlen" } */ + +#define ELEMS 0x40000000 + +int a[ELEMS]; +int b[ELEMS]; + +int main() +{ + __builtin_memcpy(a, b, ELEMS*sizeof(int)); +} diff --git a/gcc/tree-ssa-strlen.cc b/gcc/tree-ssa-strlen.cc index b87c7c7ce1f..abec225566d 100644 --- a/gcc/tree-ssa-strlen.cc +++ b/gcc/tree-ssa-strlen.cc @@ -4735,7 +4735,7 @@ strlen_pass::count_nonzero_bytes (tree exp, gimple *stmt, /* Compute the number of leading nonzero bytes in the representation and update the minimum and maximum. */ - unsigned n = prep ? strnlen (prep, nbytes) : nbytes; + unsigned HOST_WIDE_INT n = prep ? strnlen (prep, nbytes) : nbytes; if (n < lenrange[0]) lenrange[0] = n;