From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by sourceware.org (Postfix) with ESMTPS id F2BE03858D20; Sat, 28 Jan 2023 17:07:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F2BE03858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1674925670; bh=Jwkd0LQ7gdoClXJJ4515SDtwUeTeprQ0qMGaEEUV3Yw=; h=X-UI-Sender-Class:From:To:Subject:Date; b=EaDyNVVIbd69p2rMBcpbTKg5WwuMYbiKV5FMKulczfUxSx0Orv0Nw9ps611EiOWWe hJ4NvkGKBWsWPxvQd//G3MPKhw2x/Xs9VwMG/0dKUK17JsUeAsbE9qWWLfFc1QrMz3 /uAv7sQSRlBFW0qJu8xN2jFw66xFSiQ13uH7vgCCB6TYi078KOpIGjADT0k1I0rfLr UpDFcVWttP3A72YW/RbEHP0Guc7lDJfjHb/O6Td57Plu6xZWVoXYPlafSzbnH3q3Li 321QLoEs5NKoXLI0tWFvR630Igv2cGvH3frDu7snDWQrFJ/FhU1HsNZDFX9PRWcOH5 Lk2VnlxtD/vWQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [93.207.92.92] ([93.207.92.92]) by web-mail.gmx.net (3c-app-gmx-bs11.server.lan [172.19.170.62]) (via HTTP); Sat, 28 Jan 2023 18:07:50 +0100 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran , gcc-patches Subject: [PATCH] Fortran: diagnose USE associated symbols in COMMON blocks [PR108453] Content-Type: multipart/mixed; boundary=refeik-dc91fc7a-b8f3-4d41-9568-ab7203896352 Date: Sat, 28 Jan 2023 18:07:50 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:cLrJU8UyVpT4pGSbI6qT6RVv2jtgXliWmwM59LKaluQPrcG5kxy07wu76wdflAH0xNlDm xELXCyL7Jjn01liuFGQhmi/pZf46aozMXy/QyXyzXmuixHOJb4wwsbkFwmRoZzRXkL7fe7fPlP1i lX1JJy7E8rO2PPkMRkhTPl9J4lXHGUZsfG4NEVswfjmudB9lEG/hbKXHouQ6U5nXYGw9nsfMx076 oKDH9eTr6R+picNV/oHhWO0yworfCtsmhMJ/d7K2rLy+D+FNdru7EBffSKSZiIVs/0WKFPwd0zgI dg= UI-OutboundReport: notjunk:1;M01:P0:zF+ALVZVbXk=;XwicJBrcuYFn3c/s6OMXw1uMbJ0 giY8BB0quHoNR+LGW2N7p3N7sKjNCKXSZoyd3jq88dr5YDBKadRq59mZO0D+XKEzlpbiRW4QF qplZnSD/KkMcL9UuVjNll5II+iWqUBOZSoJISszb1rejGyA5/ynW5DO5GyYLd0Il0N39BhBZU 3E8MkcmtawiH/jWoxTWZ4iKIqygBc5mjyHfTz9tM2M8B8YXliPWuQys2ng6SlcyvvUVCbCTmc /nbOyftbosWIe7V3rcFWvWByiu9ecYYro6iJJvX58Xk/WbJY2iSSszKeA6xkaSxJzrH062a8i CAXKHf/vTPdQFlmBiFHlUm43Jr24NvTq7LMRpO82B3e3/GjV8mM6dN5K7WRGWmjEj6JnJ95gi eB1g8X5+mihUWv+shJ0jjwbHPZ0VTLFfWM6YcD+2Uv89s6S+cGYZYne9AdrQMdy3fDqhVYN83 IMcVjxVrQluupE5Xl6ry34C8uFtwy54dK2BhwjYVBoQ37UTJZ3TUDgopuOpClfKzfOer2+tDM n7OzvaeEgC1jVDwTcpBoA10qGSqYx7jqBmHd96JPNJDO3sNd1Ot55aeRJBsvY7NHm07X1IcPV xSwzmDnZhis32gTGywHtF3i1wHSG1iN4ZqhuAQ5gvYOmeoS/K5KCmJRHJ/LutUBmFHkAcBUae BbhxVsw1cHMXc3KCX/wfvmGkkrxKKEgerzU4cgN4expo5i8bhMdL9LcgTB2YQMVqGYryNa66I lYHBSpVEinGsjpEoe76nkz89SA8+5qqmw/qQqd59rzCxtqJgViUZDX1YyPfLrjgFzXYScV9RV eKsdvZ/UEqsEZaqcprZE/+GtuZzPkK8CNNDgtp6CGt76o= X-Spam-Status: No, score=-13.2 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_H2,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 List-Id: --refeik-dc91fc7a-b8f3-4d41-9568-ab7203896352 Content-Type: text/plain; charset=UTF-8 Dear all, a USE associated symbol shall not appear in a COMMON block (F2018:C8121) and needs to be diagnosed. The patch is fairly obvious. Regtested on x86_64-pc-linux-gnu. OK for mainline? As the PR is marked as a 10/11/12/13 regression, I plan to backport as appropriate. Thanks, Harald --refeik-dc91fc7a-b8f3-4d41-9568-ab7203896352 Content-Type: text/x-patch Content-Disposition: attachment; filename=pr108453.diff Content-Transfer-Encoding: quoted-printable =46rom 3f0e4b23038ade2cd14d93b0705af93848ee45c2 Mon Sep 17 00:00:00 2001 From: Harald Anlauf Date: Sat, 28 Jan 2023 17:59:23 +0100 Subject: [PATCH] Fortran: diagnose USE associated symbols in COMMON blocks [PR108453] gcc/fortran/ChangeLog: PR fortran/108453 * match.cc (gfc_match_common): A USE associated name shall not appear in a COMMON block (F2018:C8121). gcc/testsuite/ChangeLog: PR fortran/108453 * gfortran.dg/common_27.f90: New test. =2D-- gcc/fortran/match.cc | 10 ++++++++++ gcc/testsuite/gfortran.dg/common_27.f90 | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/common_27.f90 diff --git a/gcc/fortran/match.cc b/gcc/fortran/match.cc index 5e933c12931..5eb6d0e1c1d 100644 =2D-- a/gcc/fortran/match.cc +++ b/gcc/fortran/match.cc @@ -5345,6 +5345,16 @@ gfc_match_common (void) goto cleanup; } + /* F2018:R874: common-block-object is variable-name [ (array-spec) ] + F2018:C8121: A variable-name shall not be a name made accessible + by use association. */ + if (sym->attr.use_assoc) + { + gfc_error ("Symbol %qs at %C is USE associated from module %qs " + "and cannot occur in COMMON", sym->name, sym->module); + goto cleanup; + } + /* Deal with an optional array specification after the symbol name. */ m =3D gfc_match_array_spec (&as, true, true); diff --git a/gcc/testsuite/gfortran.dg/common_27.f90 b/gcc/testsuite/gfort= ran.dg/common_27.f90 new file mode 100644 index 00000000000..dcde5de2bd2 =2D-- /dev/null +++ b/gcc/testsuite/gfortran.dg/common_27.f90 @@ -0,0 +1,14 @@ +! { dg-do compile } +! PR fortran/108453 - a use associated variable cannot occur in COMMON +! Contributed by G.Steinmetz + +module m + type t + end type + real :: r +end +program p + use m, only: t, r + common t ! { dg-error "USE associated from module" } + common /cm/ r ! { dg-error "USE associated from module" } +end =2D- 2.35.3 --refeik-dc91fc7a-b8f3-4d41-9568-ab7203896352--