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 C4F1E3858D3C; Tue, 21 Mar 2023 19:10:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C4F1E3858D3C 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=1679425804; i=anlauf@gmx.de; bh=pnSYGdFpcI+rgDd/SNopZidVmRVxvJUSKjweVYxl7L8=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=luF26iAX5lUaEEpVruXSQImHyG+/RqgWbIQrAjer/mV//b2huliHzx+KfgcpbiQ1a wfiNihX7ECYl0fPcitV24ERt6qlUKwARZsxjOwuFr1sfr9ULVAcMLxFV77LQvHJO7c 1QwZTyr6BHuqbf5S2d7E8/xwMx9Y6kWMZ0wbcTDEfLFNmCQdy2BJ2ramdUvl9N8283 UFTRT2LuYRnYw0LHDIMSz2BUOGQV6L3942MyNyw2uSdEkY+Zj3fvWjAfTuImOrWyP7 RatvKBzKt4cdSIonCo5gGYvKXPv8+bxf4Ompk87u5ZvtcWSoMR2rTYAP0+vUo0bQ+b F6lwu5unMyhJA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([93.207.83.17]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MBUqF-1pmAh244gJ-00D2Gc; Tue, 21 Mar 2023 20:10:04 +0100 Message-ID: <61b37dce-036e-62b5-8993-9bbf848a677c@gmx.de> Date: Tue, 21 Mar 2023 20:10:02 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH] Fortran: reject MODULE PROCEDURE outside generic module interface [PR99036] To: Tobias Burnus , fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <7f9d0dc1-21d8-5b55-dc66-a12a5f8c114a@codesourcery.com> Content-Language: en-US From: Harald Anlauf In-Reply-To: <7f9d0dc1-21d8-5b55-dc66-a12a5f8c114a@codesourcery.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:rH85iFcRzjqibwTV/+oMAtp8nsuFFkRwNq+iIMaTXfmSPmDuiwa c2eIh4HSL6aai+7tsroIJPmlSClyxFGLe51AtikedPQB77T36d4ufSvSZIjsM4ZCj0vhc1H NDyuSL+VJqGX98TtSOMcpGjWu5B7/M0Zanhpe6ib5GnNvaiOZ0ymgKTXA4jA3zsrCEGcP33 NpijLY3fNHswkusRIPQJQ== UI-OutboundReport: notjunk:1;M01:P0:2rLlqIPUTL4=;h1i9pVuDnCJDjfX1JmZhNb6Sxax xlQ2+umBxrhuGB6aUpP0sAJ/OzyxFzIkqK20rWEglvOh+BpCg4cQPc7MLFLeRBVMz2RS2p7K7 rbNdecRZ0u65GxYsXjt4ljgBaDYpdD7RKh5NySpWsUt6dQuAwRyGlh5tRcKPaReWFZcCQuOz9 KH59arWaR1+Yjf8ikPYNdpKgih9XpdDsFx/Z87qMBx7+bDhJVJt3oA6CvZoYwAV1YLjzydSig ZRr/GbRu1X8Shwhl1WxLPDD+pZEK1D6NWduk2S1yeCHRsSDxUpEJfpfnPQJwL547md8XyW45p oNK4AOgRFKd/Ybl6II/meUdzN/wFIBjqck0ECXh1QIWcXr6nADKCZ8OXbBQmq7wZ/BNSx0H85 jmjKJqea4NUtrV6f2+qybNqtl/bNeUJz/qM5wdBXyFnEFXsDXX4XDgprSGBI8LbJlAzvSg14Z GQl9R6xUgkdgfgNZZjMiW45pTz0WAxZKsxh7bXT38M+Ab8SiGmDVxPUzB5H07XZU6GdieMvqD MrjuP0FweiuHGFOfbmaE8EoYnwa3jeJ+t8gGe9F+SkxaUQJX6C/lF9Ia/4EKpjvH49+o+VyJ0 rLfaxOoMJaxuC1RROlm+fd4nBHvQNFn77FEIriPlHLJ7Soyh2y81UgufnfDQ3TqanjLXw3j56 Z8sFdiS3nDaCARgvOWrpOgb8HtUSH2OHBLzswTYqZWK9R1zj0/JoHnQRZTDG44rwcwphs9eTk OQJaFJov426nJjKBfTr/3J4KB+qQsNYLUIoz0OGSGYLnHegpA6GSgYVmpvFolCS8kK787LrUQ 3CU5W/EGTQMLaYMvtU0TjwtiJSzFn23//Lp2ffBuAXdcGPU+g+4nU5FlNgxbDc9jaKAGMJhVr C/yDKGMT42WERGyALKj9RqPqdvVOv+5T7631RAVhJmvwtssjDr6Vlo8U6586d9X5tvlfhnXAF IdSU/k5quho8VRgrh/W+jOe1fH4= X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,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: Hi Tobias, Am 21.03.23 um 09:31 schrieb Tobias Burnus: > On 20.03.23 21:57, Harald Anlauf via Gcc-patches wrote: >> --- a/gcc/fortran/decl.cc >> +++ b/gcc/fortran/decl.cc >> @@ -9998,6 +9998,7 @@ gfc_match_modproc (void) >> =C2=A0=C2=A0=C2=A0 if ((gfc_state_stack->state !=3D COMP_INTERFACE >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && gfc_state_stack->st= ate !=3D COMP_CONTAINS) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || gfc_state_stack->previous= =3D=3D NULL >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || !current_interface.type >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || current_interface.type = =3D=3D INTERFACE_NAMELESS >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || current_interface.type = =3D=3D INTERFACE_ABSTRACT) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 { > > First, I do not like '!var' comparisons for enum values, > only for Booleans/logicals and pointer. I was hesitating to do this and thought about adding an enum value that it 0 numerically, but ... > Secondly, I am not sure that it is really guaranteed that > the value is 0. ... had assumed that this would be guaranteed. > I think something like the following makes more sense > and, as just tried, it also regtests (w/ your testcase included). > If you agree, feel free to package and commit it. > > > diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc > index c8f0bb83c2c..233bf244d62 100644 > --- a/gcc/fortran/decl.cc > +++ b/gcc/fortran/decl.cc > @@ -9996,7 +9996,8 @@ gfc_match_modproc (void) > =C2=A0=C2=A0 gfc_interface *old_interface_head, *interface; > > -=C2=A0 if ((gfc_state_stack->state !=3D COMP_INTERFACE > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && gfc_state_stack->state !=3D COM= P_CONTAINS) > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || gfc_state_stack->previous =3D=3D NULL > +=C2=A0 if (gfc_state_stack->previous =3D=3D NULL > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || (gfc_state_stack->state !=3D COMP_INT= ERFACE > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && (gfc_state_stack->s= tate !=3D COMP_CONTAINS > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 || gfc_state_stack->previous->state !=3D COMP_INTERFACE)) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || current_interface.type =3D=3D I= NTERFACE_NAMELESS > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || current_interface.type =3D=3D I= NTERFACE_ABSTRACT) > Yes, that's a much cleaner solution. Pushed as: https://gcc.gnu.org/g:dd282b16bfd3c6e218dffb7798a375365b10ae22 commit r13-6790-gdd282b16bfd3c6e218dffb7798a375365b10ae22 Thanks for the review! Harald > Thanks for working on this and all the other issues! > > Tobias > > ----------------- > Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe = 201, > 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: > Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaft: M=C3=BCnchen; > Registergericht M=C3=BCnchen, HRB 106955 >