From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id 02915385AE5B; Fri, 15 Jul 2022 20:18:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 02915385AE5B X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [79.251.14.155] ([79.251.14.155]) by web-mail.gmx.net (3c-app-gmx-bap24.server.lan [172.19.172.94]) (via HTTP); Fri, 15 Jul 2022 22:18:12 +0200 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran , gcc-patches Subject: [PATCH, committed] Fortran: do not generate conflicting results under -ff2c [PR104313] Content-Type: multipart/mixed; boundary=abmob-ff952103-c3b7-4200-b2e8-2497cf64ceb0 Date: Fri, 15 Jul 2022 22:18:12 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:u2/yiNtsPZkMF6KdnTu5ykiX4Yq/+BdwAEjbGZFqGdoeQm+tvXV6IAcP1PhMAgML4u4/L aarhOA2ufmUz1qzZMiLylXKcB/RnFGqKfdN5j72dLgZZQXd/sdL+D1m0Ud+HJ9dOsuqQGY/TdxGk FfBqarN+HCxOZax4x9XedVFceHzyScG72Po+SPSvFhrnyQL2cfGkPntOM22FJ9PCmoafRm6G2u+/ o4H/u45qWRCfZEht6QNsrY9uTPMvZESEKgH1aUoRMS7forIVxPfyXQ/KjwyOJHsSA4LtuyLp0McQ nk= X-UI-Out-Filterresults: notjunk:1;V03:K0:E8eUufLaMQE=:9a2smkkZ4YkTaTPDuHWjYn 44hGJzBk54TibAFw97a7Z3sYuKTgwU2frYm1BJ8sYx1rM/YbdVA6+89R/CQ7VDkCJbj9Gq+CZ NCph4nNYpwUz5mmxmqCu1DYjSQ+SEqNjiyx7DV9aRhGhiem/4/kHL60evz1AfKBkHsVK89fjv qAhmFdu9KvgzQV/cDJdf2d03gUVDy27mYLxH8b95Fh+fugNudlG+SQde7cuT+fOiYgU7VGBxL gKnjmMUlNMv7iEuIoOkhgzkd+/ftSpwhcp5G8Zz0ExYyex9GMXoENsnRYEak/q5JgJZruw6mv IWpDPXotB+HwwGJE6U5PHba3qa53tMidPnUvyTVZOlwWTsZbb7zxQCvF/bmmTsilFM+lrUpYW z9yI33eP6rUT9SDmK6+YTBkwe8Y8XLuuZbMU2eShBLei0zyQMDPWBWRYyirfcAPzC3/uH8NKL fpXZp2FGccN52Q5jAXZqQPS6+uDbR5MjlZ3ng79k0gDp7Pwu4igqnoo3FpNwA91KNn1Rh6cr6 9sA8JWobv3WTRf4EQZR8PJDfKBW2EsZH2zPDLAGrQDsd0m0ZRN7IaEKWM+JfKQJGIT/NA5p67 h98qn5jrxPxJnChRjGWVDpbZlx1TYSQq6LQyq8xOwcypVobfqyNsrQ4yatXtJSsXQ4Un/Zq6c xkvNEdpgMt9KPofeAJg4VEr41q7wPjcoSiZQPRAnIO9BJSwRJqKsJstVqMYT+peh3Dx+JALaQ gVm2tg3c9mjNzp6AR2G8Nvfl6XdSekDAz8Lh7h3lW64lfh/xtL8trOfhxTGo06dxMFVKfQHdG zVe70aC X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, 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 X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jul 2022 20:18:15 -0000 --abmob-ff952103-c3b7-4200-b2e8-2497cf64ceb0 Content-Type: text/plain; charset=UTF-8 Dear all, the attached patch by Steve fixes a regression under -ff2c for functions where the result is not set. There would otherwise be conflicting declarations of the returned result, which gimple doesn't like. I've committed this as obvious after discussion with Steve for him, see PR, as commit r13-1715-g517fb1a78102df43f052c6934c27dd51d786aff7 This fixes a 10/11/12/13 regression, will be backported in the next days. Thanks, Harald --abmob-ff952103-c3b7-4200-b2e8-2497cf64ceb0 Content-Type: text/x-patch Content-Disposition: attachment; filename=pr104313.diff Content-Transfer-Encoding: quoted-printable =46rom 517fb1a78102df43f052c6934c27dd51d786aff7 Mon Sep 17 00:00:00 2001 From: Steve Kargl Date: Fri, 15 Jul 2022 22:07:15 +0200 Subject: [PATCH] Fortran: do not generate conflicting results under -ff2c [PR104313] gcc/fortran/ChangeLog: PR fortran/104313 * trans-decl.cc (gfc_generate_return): Do not generate conflicting fake results for functions with no result variable under -ff2c. gcc/testsuite/ChangeLog: PR fortran/104313 * gfortran.dg/pr104313.f: New test. =2D-- gcc/fortran/trans-decl.cc | 2 +- gcc/testsuite/gfortran.dg/pr104313.f | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/pr104313.f diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index 6493cc2f6b1..908a4c6d42e 100644 =2D-- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -6474,7 +6474,7 @@ gfc_generate_return (void) NULL_TREE, and a 'return' is generated without a variable. The following generates a 'return __result_XXX' where XXX is the function name. */ - if (sym =3D=3D sym->result && sym->attr.function) + if (sym =3D=3D sym->result && sym->attr.function && !flag_f2c) { result =3D gfc_get_fake_result_decl (sym, 0); result =3D fold_build2_loc (input_location, MODIFY_EXPR, diff --git a/gcc/testsuite/gfortran.dg/pr104313.f b/gcc/testsuite/gfortran= .dg/pr104313.f new file mode 100644 index 00000000000..89c8947cb0a =2D-- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr104313.f @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-additional-options "-ff2c -fdump-tree-original" } +! +! PR fortran/104313 - ICE verify_gimple failed with -ff2c +! Contributed by G.Steinmetz + + function f(a) + return + end + +! { dg-final { scan-tree-dump-times "return" 1 "original" } } =2D- 2.35.3 --abmob-ff952103-c3b7-4200-b2e8-2497cf64ceb0--