From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by sourceware.org (Postfix) with ESMTPS id 532A93858D28; Wed, 15 Feb 2023 21:50:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 532A93858D28 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=1676497805; i=anlauf@gmx.de; bh=haBMbECIjJUIIOMRVg4bEqrlhTB3koCMDLNTD9hPeM8=; h=X-UI-Sender-Class:From:To:Subject:Date; b=TagWPdfO6pwI3GrAieJkSMhqQSjzAJMfGA7TdKY9t/wSe7OxDe9sZ0rHjr357eLoU 50wy7NazteiXkCPEcGy562pwOGEMS+Rtr+TlVudsN+YpjGcv46Qx1fBt4jh8e4uYwr QgyjOEHdBPWS0hVYrP5JFup0mkTC1ydfzHVvczVwxlGKklJsDUGPeOLmLrGb7p69mc WQjD8xdS6qKl7pRzibmHEKZ9jIbTXJ2Tq1XAsoGvX+WqUxakAGPMZcKBS9vLdjf7Sl zxwZ2X+O8/7C5upn5pIlNTG9uK1Fsls8DS4/CCHBYcfYJupg05Y8cB7kp4aZvUhrGe q3N9gya1xxuTg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [79.251.15.143] ([79.251.15.143]) by web-mail.gmx.net (3c-app-gmx-bs56.server.lan [172.19.170.140]) (via HTTP); Wed, 15 Feb 2023 22:50:05 +0100 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran , gcc-patches Subject: [PATCH, committed] Fortran: error recovery on checking procedure argument intent [PR103608] Content-Type: multipart/mixed; boundary=refeik-1d01bd8f-06b8-4c59-b397-f386941d213d Date: Wed, 15 Feb 2023 22:50:05 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:zcaRwsba5Cfa1QPVyq64KfepG2mFrdOzOeCq0Z2UMUzgdcBo/vUOK+XzzLfod2sAqJ8Uv D345jV2jo+xzJVpn0yIBcme8sCcEkfHG3mgLYb8oG00PU6+ACkBoI6M2DL3qP0Xn7AYpve8F80RD RNsw4sYIKRmOoZWXLMelfvQENqZsoUeUgX/Hnv6LKyp1s2+XSV0f6RTCQFM8pZ1Zyujbnzkl6KwJ 4FZVCFHmtEFdwu3jfzkua4xNOd3lXf7nJ4zWFQ56jdoVgTlU33xLlZpVWY3IihSFOZGU+I0KYh6S HQ= UI-OutboundReport: notjunk:1;M01:P0:kiQl8N0laiM=;vD6vvKaawZoKPcoZkqYD5jI+lzX IpTPoPvNe3VuQSwiN4v3eeR1ZFJoH7tahQTEGQiFdwTc8FLV/vSky9L2cCgeccdgVsYwATloQ qgkgYjUZKXFc5/RuIAuivEpBsxHJitkFYDwnbbtjoSsHjy17slvyMcFOuhABiiQUPkIyvVNIs K3RJcuFX0gG/QDA9hGOaozpnsUwoyx4T9e43S4VdAB4JETQrEYp/mTE+hhrgQsnwftSbwSsRF Oxp3/fjAabZc6k3QVOAV12jHHW1phHN3Jtt56Fi2nwVD9/aajADhrFd48aH8qMiPx0CK0mObR rFDcDjN9DeYrPLUNwFveBEjjXxqRhwJebjHJmCYQR1swg3RpviHwWPvtKf/x+g46iuglu5ViI F2J3sb3RtDsCJsT1/Xa6uaClg3bLLhFRUUVmfWRg3cykdCu57IhI1RGYtcSR4jwTVIAT79/5/ nsX7oRVUsgdU7uxjw2tU29TTgXClbO7PCY87CvOmWBq6hvaA5HvEDIHRE4iXCMNS6T37c4Gcq Pxa2SwU7x7gTr8Tw6P0YAE7IRG+YPJsvYRzMFna0i0q1+FfscTUYZfGD+2cwLzkoXVWCS1hH9 bgwvhkGYXNBF4SW3asB4YUZE+zB3QU/VhS7GIL3sryJ7ZJ8uGXAyG5ZrG1A911bXyQdamn9RI DY/sW8zrVRcyW3awXxAVNI5gOMwru7WVqEpeDOLGPxWZfMIIK1NkLyRn/GWdqE8XiPCH+Wrwp OAuvcGQVBjUmzCk/20Ilyvjb9Pi+4XbBWhgV+1brtBOU55MKK8WrAfuEsvHxN3XgyJEhz0Bui zgXgOTkf0UtVnsSfgOg77InQ== X-Spam-Status: No, score=-13.0 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-1d01bd8f-06b8-4c59-b397-f386941d213d Content-Type: text/plain; charset=UTF-8 Dear all, I've committed the attached obvious and trivial patch for another NULL pointer dereference on behalf of Steve and after regtesting on x86_64-pc-linux-gnu as r13-6067-gc75cbeba81e5b4737a9ab7dd28cce650965535a9 Thanks, Harald --refeik-1d01bd8f-06b8-4c59-b397-f386941d213d Content-Type: text/x-patch Content-Disposition: attachment; filename=pr103608.diff Content-Transfer-Encoding: quoted-printable =46rom c75cbeba81e5b4737a9ab7dd28cce650965535a9 Mon Sep 17 00:00:00 2001 From: Steve Kargl Date: Wed, 15 Feb 2023 22:40:37 +0100 Subject: [PATCH] Fortran: error recovery on checking procedure argument in= tent [PR103608] gcc/fortran/ChangeLog: PR fortran/103608 * frontend-passes.cc (do_intent): Catch NULL pointer dereference on reference to invalid formal argument. gcc/testsuite/ChangeLog: PR fortran/103608 * gfortran.dg/pr103608.f90: New test. =2D-- gcc/fortran/frontend-passes.cc | 3 ++- gcc/testsuite/gfortran.dg/pr103608.f90 | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/pr103608.f90 diff --git a/gcc/fortran/frontend-passes.cc b/gcc/fortran/frontend-passes.= cc index 1cbc63016da..02fcb41dbc4 100644 =2D-- a/gcc/fortran/frontend-passes.cc +++ b/gcc/fortran/frontend-passes.cc @@ -3049,7 +3049,8 @@ do_intent (gfc_expr **e) do_sym =3D dl->ext.iterator->var->symtree->n.sym; if (a->expr && a->expr->symtree - && a->expr->symtree->n.sym =3D=3D do_sym) + && a->expr->symtree->n.sym =3D=3D do_sym + && f->sym) { if (f->sym->attr.intent =3D=3D INTENT_OUT) gfc_error_now ("Variable %qs at %L set to undefined value " diff --git a/gcc/testsuite/gfortran.dg/pr103608.f90 b/gcc/testsuite/gfortr= an.dg/pr103608.f90 new file mode 100644 index 00000000000..5c37cb78dc6 =2D-- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr103608.f90 @@ -0,0 +1,14 @@ +! { dg-do compile } +! { dg-options "-w" } +! PR fortran/103608 - ICE in do_intent +! Contributed by G.Steinmetz + +program p + implicit none + integer :: i + integer :: x ! { dg-error "Alternate return specifier" } + x(*) =3D 0 + do i =3D 1, 2 + print *, x(i) ! { dg-error "Missing alternate return specifier" } + end do +end =2D- 2.35.3 --refeik-1d01bd8f-06b8-4c59-b397-f386941d213d--