From patchwork Fri Feb 3 19:03:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Jelinek X-Patchwork-Id: 52634 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1039139wrn; Fri, 3 Feb 2023 12:16:11 -0800 (PST) X-Google-Smtp-Source: AK7set/Y2aXFRzZ+EDHgCSCeADMfXRtUHGkspFhxSHQ25Rm1WnER4lEvpxdnm9dIuSMT3mim4Lv5 X-Received: by 2002:a17:906:358b:b0:88e:35:427f with SMTP id o11-20020a170906358b00b0088e0035427fmr9630292ejb.73.1675455371146; Fri, 03 Feb 2023 12:16:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675455371; cv=none; d=google.com; s=arc-20160816; b=lmkoksw5/zx3pc9GAYJ2UPODlrkHunria89DQYQ+iSYN8kYM+kjS+rtxpDpxL9MEis 0SXE0fru8i0M3KUULBg0Mkhm3atnLoGn/6TAogskukNDe/hMu2+UZkrFc1+n3uXdOm6I tJVASyUM6/jpa7RLdP0zCSnX6TrQIkJhrM8rou+Sx8ErdXr3kHsORbUlK3XArWIYeI2U Iag9WfzZ2hoJTbbAVwLXRv+SOWvKfguSDUvBPUoguLqh6EL1ieFHwXK6D+3kcr9VigHC mWNNQLJs9eg9SEK3y3dCb5V7+2DLAl5FFJB1ql7v7Az5aX2kCFtlsC8e1oz4WHdY/nxs GA1A== 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 :content-disposition:mime-version:message-id:subject:cc:to:date :resent-to:resent-message-id:resent-date:resent-from:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=R1tgYGMGBLx+K+CawANhhmgHkTgo4G7roJruvCi7tLI=; b=x5SBRTHNGWoCs8pz1QZq/ItyU8DY0Go5xoHoVO4goIxrpIssUHQ1jPge9flSTTPiQw QI7rPEHt43fkLsIdTWrlqP2XRQ9ZGNGZ/NXC/Z72Z7dXO9WgO1efnODCso9tqS49g2BK YGKetrx6ThPPp8dRQzTGSUfFBK4LYvAen/iCTIJ7aN3Ca+5mZBDvY3NYEypXux9AcwUp 4N7B/YhNu2N62ylcDdBHmxD4vF4G1zjjmLdMFpsoWQICqJI4QAOasYIUmGxABd1KKNrT aQPeMbbR1usjn7v+Z0l2t6nvABgFY4foGSQYcKFhvvOAN/i6zckznV2TL9wr47iTO20T I6Ow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=cmkYwDja; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c 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 (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id ad24-20020a170907259800b007c10bb5b4b3si3740071ejc.681.2023.02.03.12.16.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Feb 2023 12:16:11 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=cmkYwDja; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c 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 483203885C18 for ; Fri, 3 Feb 2023 20:15:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 483203885C18 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1675455305; bh=R1tgYGMGBLx+K+CawANhhmgHkTgo4G7roJruvCi7tLI=; h=Resent-From:Resent-Date:Resent-To:Date:To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=cmkYwDjafXX9RT8W80iYmNq0BsRbG9vfD8RhotORbdD9M817x5iOWO4cFNIUKCEc0 u64XhBKOvnAbcdo4QAl4IGsuuWA5PN+fVFxJY+46TifXQtXjjehQwYmEviygwoFW3B FkXP0X6Ae0SK4CD5BNye2Nq9lfrWSnNBZHAGGg4k= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id B164938493CC for ; Fri, 3 Feb 2023 20:14:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B164938493CC Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-602-pe3QpR88OPSFsaM5HFff6Q-1; Fri, 03 Feb 2023 15:14:02 -0500 X-MC-Unique: pe3QpR88OPSFsaM5HFff6Q-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BB43885A5B1; Fri, 3 Feb 2023 20:14:01 +0000 (UTC) Received: from tucnak.zalov.cz (unknown [10.39.192.223]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7CB6AC15BA0; Fri, 3 Feb 2023 20:14:01 +0000 (UTC) Received: from tucnak.zalov.cz (localhost [127.0.0.1]) by tucnak.zalov.cz (8.17.1/8.17.1) with ESMTPS id 313KDxwZ1415131 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 3 Feb 2023 21:13:59 +0100 Received: (from jakub@localhost) by tucnak.zalov.cz (8.17.1/8.17.1/Submit) id 313KDwmq1415130; Fri, 3 Feb 2023 21:13:58 +0100 Resent-From: Jakub Jelinek Resent-Date: Fri, 3 Feb 2023 21:13:58 +0100 Resent-Message-ID: Resent-To: fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org Date: Fri, 3 Feb 2023 20:03:36 +0100 To: fortran@gcc.gnu.org Cc: gcc-patches@gcc.gnu.org Subject: [PATCH] fortran: Fix up hash table usage in gfc_trans_use_stmts [PR108451] Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=unavailable 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: Jakub Jelinek via Gcc-patches From: Jakub Jelinek Reply-To: Jakub Jelinek 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?1756842290889895745?= X-GMAIL-MSGID: =?utf-8?q?1756842290889895745?= Hi! The first testcase in the PR (which I haven't included in the patch because it is unclear to me if it is supposed to be valid or not) ICEs since extra hash table checking has been added recently. The problem is that gfc_trans_use_stmts does tree *slot = entry->decls->find_slot_with_hash (rent->use_name, hash, INSERT); if (*slot == NULL) and later on doesn't store anything into *slot and continues. Another spot a few lines later correctly clears the slot if it decides not to use the slot, so the following patch does the same. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2023-02-03 Jakub Jelinek PR fortran/108451 * trans-decl.cc (gfc_trans_use_stmts): Call clear_slot before doing continue. Jakub --- gcc/fortran/trans-decl.cc.jj 2023-01-16 11:52:16.146733136 +0100 +++ gcc/fortran/trans-decl.cc 2023-02-03 14:41:40.503322954 +0100 @@ -5350,7 +5350,11 @@ gfc_trans_use_stmts (gfc_namespace * ns) /* Sometimes, generic interfaces wind up being over-ruled by a local symbol (see PR41062). */ if (!st->n.sym->attr.use_assoc) - continue; + { + *slot = error_mark_node; + entry->decls->clear_slot (slot); + continue; + } if (st->n.sym->backend_decl && DECL_P (st->n.sym->backend_decl)