From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by sourceware.org (Postfix) with ESMTPS id A9A65385801D; Mon, 1 Nov 2021 21:39:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A9A65385801D X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [79.251.10.64] ([79.251.10.64]) by web-mail.gmx.net (3c-app-gmx-bap65.server.lan [172.19.172.65]) (via HTTP); Mon, 1 Nov 2021 22:39:52 +0100 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran , gcc-patches Subject: [PATCH] PR fortran/102817 - [12 Regression] ICE in gfc_clear_shape, at fortran/expr.c:422 Content-Type: multipart/mixed; boundary=rehcsed-6ba01109-ce20-4a3c-b658-c6dcae648e20 Date: Mon, 1 Nov 2021 22:39:52 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:/QdQhvI7rT4eha6dwfMrQWUVpcZaH3Lrqze9IwgK2Wznx+FIezefuOM6Tl3S2QshlcAEB 6BJyd6LtMHvYQSqmHXPhA+/6wWfXgBuNrOWhnsRcCuOKUiHmW9daFZg/UJji6T3z6rCZ8nktI6Ga THy7EJFBnP1CeiYpC6PUAko0Tuki8OFYKijcf+hYhgoMhLoBzoCiagZCMXkNVN65X5gQQKRkb9Y+ 1dC2MH1X4Fv5g+jEAqtiAUQUnd6kk7f4KX8eRDkpLdFiLSPKKdBt6tbgTOznzGQAXxg+H8sEdKZ7 Jw= X-UI-Out-Filterresults: notjunk:1;V03:K0:2SIwtgCK14U=:lyGj7OuuXKri9hTjdAuC37 GEJmJYtx5LUeUbeNngtZMOk3BGiyDwRaYVhMerxHUg90D3/3sOacNGAxYIgwZyIokFwhxkWKo oBwEti6iGwPqFu8AvA+zJP0dFjNOZCPW+7oQ7vF+IliRRcUk9R1rgNfI+ffMeKi93qe/wQvvC 1KOs+1rlhYo6shTtfY1toO5IYXGL3wP6d04+rGVw0LwB2rUdRsfcNlxntmzxlIzzBWM4HAcV7 WT/4agt8r/eHH15/0oxmVL2OFG+m6Aq/GtdLxWF/rZYDRecbDK2l5o4EVjixntVZgWhEQnwMo z2bGYOZt9YAHiTljEQPX51CXrawdZQoM6CtiA27S/eHmGx/Z46IsgGwUvMl8old/HXNUlWnFp uGu3hGYAYLH7IKFeeNwSHhZfgue8x+6CR2nSpBy5ezhwkZ2bNdWWBEjieIArnTIonfJrtX8Th 1RpNBFhblZQm/0wi2o30QmX/tybgsiuILKIOhZWo/HHnkGhiZjX+j+QAGjR5x547GzmI3edJ1 aDXrNQXSQjcGZAJb7UTGyxv1p06T5ZWzH1i3tW6d9yoh9F0UI0yGTSufr71YmtrReMV3PQ8Ja BSLlLcXVFshn08+QxoSzNO/mn+Ywva/a6vgOwMLzu2YQztnZuIvrpFL3/8KkKCmkfqXPD7wnY M/Bu7u1ChDEz35JFR+8xF4Lrw1bv1vpYFl0E0AYgcFRft81YhhxL9B8FSSLFgtLI6KkkM2foU 1CuhBM46b1s/lBSCTgIQpNe5pbEc0UcDZUHWFIs5/4XIrnKt8IGo2rA5a2KCfqQZ4CxqX8XwE QJpxOAe X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Mon, 01 Nov 2021 21:39:56 -0000 --rehcsed-6ba01109-ce20-4a3c-b658-c6dcae648e20 Content-Type: text/plain; charset=UTF-8 Dear Fortranners, a recent patch uncovered a latent issue with simplification of array-valued expressions where the resulting shape was not set from the referenced subobject. Once found, the fix looks obvious. Regtested on x86_64-pc-linux-gnu. OK? Thanks, Harald --rehcsed-6ba01109-ce20-4a3c-b658-c6dcae648e20 Content-Type: text/x-patch Content-Disposition: attachment; filename=pr102817.diff Content-Transfer-Encoding: quoted-printable Fortran: fix simplification of array-valued parameter expressions gcc/fortran/ChangeLog: PR fortran/102817 * expr.c (simplify_parameter_variable): Copy shape of referenced subobject when simplifying. gcc/testsuite/ChangeLog: PR fortran/102817 * gfortran.dg/pr102817.f90: New test. diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 4dea840e348..c5360dfaede 100644 =2D-- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -2129,6 +2129,7 @@ simplify_parameter_variable (gfc_expr *p, int type) return false; e->rank =3D p->rank; + e->shape =3D gfc_copy_shape (p->shape, p->rank); if (e->ts.type =3D=3D BT_CHARACTER && p->ts.u.cl) e->ts =3D p->ts; diff --git a/gcc/testsuite/gfortran.dg/pr102817.f90 b/gcc/testsuite/gfortr= an.dg/pr102817.f90 new file mode 100644 index 00000000000..c081a69f0ea =2D-- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr102817.f90 @@ -0,0 +1,17 @@ +! { dg-do compile } +! PR fortran/102817 - ICE in gfc_clear_shape + +program test + type t + integer :: a(1,2) =3D 3 + end type t + type(t), parameter :: u =3D t(4) + type(t), parameter :: x(1) =3D t(4) + integer, parameter :: p(1,2) =3D (x(1)%a) + integer :: z(1,2) =3D (x(1)%a) + integer :: y(1,2), v(1,2), w(1,2) + v =3D (u %a) + w =3D x(1)%a + y =3D (x(1)%a) + print *, v, w, y, z, p +end --rehcsed-6ba01109-ce20-4a3c-b658-c6dcae648e20--