From patchwork Fri May 10 19:24:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harald Anlauf X-Patchwork-Id: 1933926 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=anlauf@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=K6LNMnhz; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vbf3m53tJz20fd for ; Sat, 11 May 2024 05:25:23 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E1B173870849 for ; Fri, 10 May 2024 19:25:20 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by sourceware.org (Postfix) with ESMTPS id D1D68386F802; Fri, 10 May 2024 19:24:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D1D68386F802 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D1D68386F802 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715369098; cv=none; b=B8D3uWgqXM4iextK4EFSSJesHrmDPoC9Wo+8WmLnSWtdGvGAtteSzmnGAmmSt4azeouKXG3KZsgmXFi++EcjoWhK6Ko5PJ5SdJFxBDwK5oOWaUA81+KjDacZF3uMad4KTKt+bU3MZqjP8FYnVcyfUF4awnR3uW4BflvunaZ57Vg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715369098; c=relaxed/simple; bh=vd4biKQWSOkBdMBWggDdD+JEC0VSp3onEkiefGWJ5X8=; h=DKIM-Signature:MIME-Version:Message-ID:From:To:Subject:Date; b=CmknmneYF39uOuJPFd5uDM2IvinnU63wNa/DHa65OXa4RNIxZCqSWLPnPteRquHSkUWprdQmjB/1Fm83ZpYla31QdN7nMp2/Kkbko5JYKo8jQTpYv7dRhmV4NShZ2dyBNQLPiJj+rnLyFCl2UWvNvvMUGiyhPwL/Rkw+HDWDe5Y= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1715369094; x=1715973894; i=anlauf@gmx.de; bh=na011NqUUP2FcD8TqLr9YjiMwjo6n6GcXdkjK4HDMPE=; h=X-UI-Sender-Class:MIME-Version:Message-ID:From:To:Subject: Content-Type:Date:cc:content-transfer-encoding:content-type:date: from:message-id:mime-version:reply-to:subject:to; b=K6LNMnhztR6Q+GiBK1m5n2qwntv9qfSGK5AzFMmBCI8u+iB2ALwNyMSL9A1SD6NK AXuNMsJL5eK8lkA+3NERbevmyx3PdK5gVDEygFaO6wyJhRNgYvOq/2+qlNkddj8X9 uqAPxBNbtf5yDzTmLm6DqvX1i5+QNc5KKi3z4SvTHJqzF8lZazY8DL4G6blfIpn4P ncDXo3jBlbHJQvJePa/PsS4cOLzWFh4YHUMIOPpwn8J0CH1420UHuaxSCCbtuazAb v97GOwEISiRgcGDWJf3UgpcPS65v8Ri7RNR+74KqgZEasjv1+epbrmd/VyQ9T1a0t rouHj5SD4722NBU95Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [79.251.15.151] ([79.251.15.151]) by web-mail.gmx.net (3c-app-gmx-bs23.server.lan [172.19.170.75]) (via HTTP); Fri, 10 May 2024 21:24:54 +0200 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran , gcc-patches Subject: [PATCH] Fortran: fix dependency checks for inquiry refs [PR115039] Date: Fri, 10 May 2024 21:24:54 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:dyt/nJyt+MA9KLnzDxAAHBRHDRJCwEqr6WKEN6GRwIol3Ax/QO3u1Zs3EZci2cE6d+Ptr Y9VQGi5RaeisT+cXPtSQOJWh0qigMpGrQwaAIJRExeEg63ZMq7uvjFw5d5Aasluip3Zx2MmjrNaM vbO7wvIOhYa6zFQDRIzsoVhQkyE2LMKnfILojQJbCokYvBymomlO5xBbKu0CGwxe/usqROdUJRtk T5pfrPbY2vQzR0rAbSKORfnqTFjAVr+fc5XbAtLkgGG2ywl1Bd3w+X562ME/xhCHFq41pu46zH1P ew= UI-OutboundReport: notjunk:1;M01:P0:KW9/RYEc1VM=;BTFJVvvj8EKMIPp1OJzesVqctze aLZIARI/4OYZ2bG7aBl+2brEa/lrU1AZ+WYEDGmtPsurnaUqZM9ca2jNLFurXj9IZ6brLNtrm Lkyqjv8+mQ2p4PsrEl6uINxiYLWzlgvdEyEf62qSe5GXpWnpiXeDkI2k7WGrKyIYZPNOD6rX0 MwkGf4zXKrf7/VJlVUvjU9I6Wx2CRpN0S6Y6oC/1F1N337xy1tc/hmoCP2bw/qmX2aA0ZzE2m 48QrvoYVuAHRQd2pju+PyvTJGUFhG9mR3oJ/RG2Jr07YKo2ZnggpQjC6Sp9XmG5O42uY2AMEH vvgRsSuMi3BEKeqH1Q9O2w1jawZJH05c+Ne2fipCqs0IIM+JM+/8EmatSBwtNLYMzWpQGY6O4 JEkT6ak0nPnh76FKQSOR+Sdm5zxo6PdYg//dWR1KSKJxGxVAkCdfOvjEerfkH2NRTWki6trtq DTvR9+eebQwnI4ZwDxTz67+/h9/PFY+wVc69raesPIEbuRIq4+zqMzzjaJmHgX/SUf+wUIEdp 3n3ERV4xFGXy1ZiYMUzz2+AzMOdtJJBA3vrgpWaxrpOg8dW476s1ZTJJtco2lRo+91UMEuhAC ubuS0TqAaGADQu1/Ij5SNKpveOB6knGJtDyyAyWooTMca4aiPnj5FBg9ll9rdksTdKH0UjCeH 6/u13qZSgYTR1U/TRSw/MhKmwo8NocKK1Dz182stecpT61v/B5UF+xKrMhIq0t0= X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Dear all, the attached simple and obvious patch fixes a bogus recursion error with inquiry refs used statement functions. The commit message says all there is to say... Regtested on x86_64-pc-linux-gnu. I intend to commit to mainline within the next 24 hours unless someone screams... Will also backport to 14-branch after a decent delay. Thanks, Harald From 8bb31eb3d7f8ea6d21066380c36abf53f7b64156 Mon Sep 17 00:00:00 2001 From: Harald Anlauf Date: Fri, 10 May 2024 21:18:03 +0200 Subject: [PATCH] Fortran: fix dependency checks for inquiry refs [PR115039] gcc/fortran/ChangeLog: PR fortran/115039 * expr.cc (gfc_traverse_expr): An inquiry ref does not constitute a dependency and cannot collide with a symbol. gcc/testsuite/ChangeLog: PR fortran/115039 * gfortran.dg/statement_function_5.f90: New test. --- gcc/fortran/expr.cc | 3 ++- .../gfortran.dg/statement_function_5.f90 | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/statement_function_5.f90 diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc index 66edad58278..8e29535b0f7 100644 --- a/gcc/fortran/expr.cc +++ b/gcc/fortran/expr.cc @@ -5500,7 +5500,8 @@ gfc_traverse_expr (gfc_expr *expr, gfc_symbol *sym, break; case REF_INQUIRY: - return true; + /* An inquiry_ref does not collide with a symbol. */ + return false; default: gcc_unreachable (); diff --git a/gcc/testsuite/gfortran.dg/statement_function_5.f90 b/gcc/testsuite/gfortran.dg/statement_function_5.f90 new file mode 100644 index 00000000000..bc5a5dba7a0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/statement_function_5.f90 @@ -0,0 +1,20 @@ +! { dg-do compile } +! PR fortran/115039 +! +! Check that inquiry refs work with statement functions +! +! { dg-additional-options "-std=legacy -fdump-tree-optimized" } +! { dg-prune-output " Obsolescent feature" } +! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "optimized" } } + +program testit + implicit none + complex :: x + real :: im + integer :: slen + character(5) :: s + im(x) = x%im + x%re + x%kind + slen(s) = s%len + if (im((1.0,3.0) + (2.0,4.0)) /= 14.) stop 1 + if (slen('abcdef') /= 5) stop 2 +end program testit -- 2.35.3