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 0B99B3858C60; Wed, 24 Jan 2024 19:35:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0B99B3858C60 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0B99B3858C60 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706124912; cv=none; b=vj/Xg/dn7ATKCPLNYjtdd6Y5xTjoPadnJnETTyjveU/88FFMHxOGaB24/1Fh8UMJM/PmfvlIeR/F/3CDnP7AzLmjPPbfz1mhCuQW7LC7kWv23rw/HIU5Tmx4ntyFGMdNZCmC5ILBwRLfpHe92j9AbCINNi5Pw0HqJI7bqV4qs74= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706124912; c=relaxed/simple; bh=ERXFzReaqyGNpF76a05hjr7bH+iE5vPIDT7Es1OgklI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Al6AolRY7CR72C0NrTAelxiInrpTpsnojVTv6SEL4oIwEGRE4t9DkgYseLwMDyQZJskH+ggdoRr+8FLteR9QEeU2GwFD/Jpy0soOqbMrmIKqgyXu8iCNyac7Yt2s3L4VstTNM/0GuMh4/FHxTy20w9s0HvSaKiWLrHKcyF/x+xc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1706124909; x=1706729709; i=anlauf@gmx.de; bh=ERXFzReaqyGNpF76a05hjr7bH+iE5vPIDT7Es1OgklI=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=X50fVZV0esGT+ATr5Vz96aHzj1dSg7F4kJ0mAcCbDT/3X9jz3BedlaCQEZsPi7TN 84GnClJEXsMLAT3jGpjujRIEfMERIA5XdO+hS7Ms07cU7fX8CxchJ1cDWL0GMsPBJ XTwXglRUYYwwgHApvdeKfLdF+P8hOBxs5ythiT/8m4YM6fTq/hL1farpVmSQ2UJNS Ki0b6u/765tboOTuFBVYzRohAOrHOzb7xxTHhnVJl8arJwslHV/bf2GSn9ZUoTcLY sx/eDoMPyLtl5Hm9HyqyMq+gKhPKDeiNr0DUfkM/30brrcDj9St7I6eWaBnm2mw2Q WcJegNyGpp0b9ITBCQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.232.150.163]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MfYPi-1qrUX72uz2-00fwxH; Wed, 24 Jan 2024 20:35:09 +0100 Message-ID: <754520cc-597a-4c96-b901-45a6b1998702@gmx.de> Date: Wed, 24 Jan 2024 20:35:08 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Fortran: passing of optional dummies to elemental procedures [PR113377] To: Mikael Morin , fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <2c7591cc-6660-4323-98b2-1b0a8f69628e@orange.fr> Content-Language: en-US From: Harald Anlauf In-Reply-To: <2c7591cc-6660-4323-98b2-1b0a8f69628e@orange.fr> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:E8W44DM5HlaUb5nbFRDf7aIEteXxTFpcuxpW+nU5XcJ1aoo5Yko pq0b+dRoBBAIRY39sXPgXRI6cKIUOZuojHwt9PmL7b62asDlo7lVUc8qJg4eflWI2jFx1tU QB3Tz54MRDWerybOrICJnNJAc5iyFlYfUtyBxiriDvJlCcmmSVBzV7K64c8Y2ecIRuoLOY7 +91bFLa2LVLCZw9ZMgV2A== UI-OutboundReport: notjunk:1;M01:P0:LL7lD8JUi4A=;4hZINFlox+jyfB2XjszkJbc9TIH OgnbXphhF8MD6GDiMfVgGav0GSETx762kZVlR1ha7ddnb8K8CS2y/3uR52dYkM4F60EbVyOhn E1LQJcGEmMlXsUYwbA3nWIWh44tdr59rtkn53bkf3pH8RY/y4DJcZ9jDSQfZ9leDF7A3ljRoU 3JhV7yx6YJQrUCvbhJ4VnbyqGBLeEORT/BtQU9s5vWDEQcpcXF4kIXYlwDztAJt6RTEPhpT6G Nz6rphHgJTwPXRuvvwyYa+n82in74cxvbFUH32+s0p7WUPIkgvzIfSvgqm1ZAF6UDvAwuTaNO imtZ6ifvITuqizGdJFQxbWl4N4SFSDUxvjN0xVFUOcBqOPMhx3hUi7pSPktyWSNV0GdQrDCdp LGyuhw28bImzT/QahbbjprU2qzjQmli+y3F3zTtxPgMJ0KrFrfrA2cmusu7keLh5o9wPMIHQg cq/Fesy7nSwXvUO2q9kfqiZZS7w7KB2DamkTeB/PmJzmA+a3OpRMrVuzKuf1Xp6d8DfA2fstv SAtKds0afo1459CoUkg+RiRi3DVI9b/QhY+IbH7xL4R+AAmSWiHScyitrwgVmyYsptqKHgQVj Xg/+SRcF52CqJCUBQ0hYjdFDnV48Ka91T0jU1ZX4PbJCPRuUZiXgPFr1PbD7jxtaJs08pfsck kVXmX3lhIr8R0X58Wtn1PSXSlNNRB6EGsE7erAFJbqzARHMkurMlywCZj5UUJSv1wYWA0IpRD nk4Mp4gBGne9XnBrtuPwrGdIyjwJhb6wKeDMw3BMRL3pPT0SR1b6OQb/eFhRuT1+PqPakwcib QkcFXKDjkBs3qInXsZS7pGyAUYSmj3TCrAXYZ61eobYcWolXM3lQIUOz0Z4GvJ4GS1Qny/56Y kMviyaKAofGM6HcPkjNb28rzWLz8dfvDL5REA0agRVZxaNaE6flRsHfssmAgb1ntxuruVwAH3 2uBjaw== X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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 Mikael, Am 24.01.24 um 19:46 schrieb Mikael Morin: > Le 23/01/2024 =C3=A0 21:36, Harald Anlauf a =C3=A9crit=C2=A0: >> Dear all, >> >> here's the second part of a series for the treatment of missing >> optional arguments passed to optional dummies, now fixing the >> case that the latter procedures are elemental.=C2=A0 Adjustments >> were necessary when the missing dummy has the VALUE attribute. >> >> I factored the code for the treatment of VALUE, hoping that the >> monster loop in gfc_conv_procedure_call will become slightly >> easier to overlook. >> >> Regtested on x86_64-pc-linux-gnu.=C2=A0 OK for mainline? >> > Looks good, but... > >> Thanks, >> Harald >> > >> >> diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc >> index 128add47516..0fac0523670 100644 >> --- a/gcc/fortran/trans-expr.cc >> +++ b/gcc/fortran/trans-expr.cc > >> @@ -6392,12 +6479,23 @@ gfc_conv_procedure_call (gfc_se * se, >> gfc_symbol * sym, >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } >> >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Scalar dummy arguments of intrinsic = type with VALUE >> attribute.=C2=A0 */ >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (fsym >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && fsym->attr.v= alue >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && !fsym->attr.= dimension >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 // && (fsym->ts= .type !=3D BT_CHARACTER >> +=C2=A0=C2=A0=C2=A0=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_length_one_character_type_p (&fsym->ts)) > > ... please remove the commented code here.=C2=A0 OK with that change. Duh! I completely missed that during cleanup. > The !fsym->attr.dimension condition could be removed as well as we are > in the case of an elemental procedure at this point, but it doesn't harm > if you prefer keeping it. You're absolutely right. I've removed it. > Thanks for the patch. Thanks for the review! Harald > Mikael > >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && fsym->ts.typ= e !=3D BT_DERIVED >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && fsym->ts.typ= e !=3D BT_CLASS) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 conv_dummy_value (&parmse, = e, fsym, optionalargs); >> + >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* If we are passing an absent arr= ay as optional dummy to an >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 elemental proced= ure, make sure that we pass NULL when the data >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pointer is NULL.= =C2=A0 We need this extra conditional because of >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 scalarization wh= ich passes arrays elements to the procedure, >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ignoring the fac= t that the array can be >> absent/unallocated/...=C2=A0 */ >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (ss->info->can_be_null_ref && ss->in= fo->type !=3D >> GFC_SS_REFERENCE) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else if (ss->info->can_be_null_ref >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && ss->in= fo->type !=3D GFC_SS_REFERENCE) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 { >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 tree descr= iptor_data; >> > >