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 85EF73858D3C; Sun, 16 Oct 2022 19:59:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 85EF73858D3C 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.net; s=badeba3b8450; t=1665950357; bh=pZMYWY+c3qTJayWJjxwyc/rJkkcRfKbyx5WN5Qz+4tA=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=Gb9wjbVk3NEhlmfGpBsDqaIgmHpLWAD5kyLBzSUhwpFSTpofoy84mbcMPwMuM6xrv 3TFCTRA+72vEUk7jzmj2DWidciCBT9lclugdHp3VFKozEGdJQXk8DijCdHEb7d9o1w P9ePP2AuNXxujrpI4URvX26eCv1S91DpMha8Kizs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.178.29] ([79.251.10.58]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MAOJV-1orYSM1pQR-00BqCa; Sun, 16 Oct 2022 21:59:17 +0200 Message-ID: Date: Sun, 16 Oct 2022 21:59:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [Patch] Fortran: Fixes for kind=4 characters strings [PR107266] To: Tobias Burnus , gcc-patches , fortran Newsgroups: gmane.comp.gcc.fortran,gmane.comp.gcc.patches References: Content-Language: en-US From: Harald Anlauf In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:JFdyks1ci5Rxc+vg1T14kzXxAiLOc1Qsmkoeh3dBBT42bfdbSOi PYtyTDDQTo+zB55RxV5e4YNxsgn+Jj6LU83IDH9Hfxt9NBNnbgEh1pb+jjztZ1yMtc8qCcj 9/iDN5RgNXyB5z5zmN6Cdptfrgl2vo6Nm3t2zZnGifWX3Y7Cy2NM+A7eJJY46IewHvxK/nU l9f1jWdJzDazgwfSHAZCg== X-UI-Out-Filterresults: notjunk:1;V03:K0:Sh/gttviyrQ=:JFfQYoc48MkFVSl/1Ybuu6 LttyKSBCuetV3nBUHjzoHGI7OTBfdN1nxYUfDFKXfaZ8TI7qKjtY1jWCcsh6//oLgqPEOeNCs IGGyC5+qgj30S1Wh+VQtIi0G6l5YLGzuFu3PYXWnZc5HzOLFFlbzaX6tv1ROaXB/TO4OQ7VYk ie+OXRIXlBqn9CYHEpRqny75jfF0HmMNy7RoLcfL3ZMEJ/H4DRekv3jPekOTKhGXbVx48+OG0 fhFWE6VvISkVlE/ueDZmn+Y0Al0dGS3BMy6xYbvMPY7MkDotg/8CfGlh9ELAFNSWQMlVfy8Io 9k/wVoYylZ8gn6tpg1L2EpmJWzXHLLKgJwapZ8uL2zSmpLJV5xdMPOsC0YOFItcRTQwdYJ5gL dO2EE+epmGjTo4ymcc5KxCrF87d/XXjKBBKm3znUcEAQnnLOBz9rQl+USR3JFBmWRBH+Hn4NJ W2W4B3vlxOLA6DCMuH6ARMvbcVwE8X+TS9cQQ3Xfn5dXuCzaCL8j9irAkBXcdGBvF3jPxgYMj F21ieULb5tGMv6NG71B4do344+z9o2B83mfSKmSX1bFXOKuDs+TngRqzCWGveggyT4b+/qaUR 9jVUqXj3aiyG0OExF8E4VChx0C0yeL0X4NZqyGPVhhVBKkPfZEnRbjrbGdSEoE+Wr4lVtO9kE HRbN8vsudvUt3HUX118qGEqznsucT6QRpdCtnbytBY4/frFh+8q/DyO61Tl8TgNf94rDS5VPN ZkfigFF5eEqq5j0SHqckK6efa7JntkUgBLfCOcePjg7t+Nv2k22Bz0ajrNNBb4zVcBJ5e0umI ZN3Bjz5XVSCWLf6OUgYQowlsLMm/L2MCLVc53Wyt/l87uvlXJDoiHj8DMs753IaSdnq/HDqaL qH1IB9aK4BeXJWkdWcpVjh3JiSgQiEVP4Ualdfr2MzSHwk6WCejdcVWh2DOSQNOjeURJ2T42i Y29jpuN0IG5ihWX5SQ/HdDfZA79IU8nYRUSMbZ7Q7xlFbGKs5OFQ5kg18Q4qFTjMi0YKjopxa 2nSHXdEtyyU1kznhNGBJA9nYtqZ1EWHjSUTbvO0pRQtR7+iTG9FHUnKDt0Sn142Nnhw9hTwxy 1btzp+qzXJsH35pQUQcF2ChWlxVwvExiCDqweA3BNwh4Y4oPZOSIGHZZkUYQ1T+G1uvEvd9eO SrBiq3I7aR+Nnhm9c1w106Zd6m7bBJvEacq+zzGxmZf4Of8Bde8H7bGuP/pVLh9lY+eUg64F9 O/owDg2/mYJDI0Ay6S4cv2uaUtMPEoAmQBrNQSMosoZ+QFv07DirmNFEZcZK9IV5N5kTNQtyc 7VDOe2ohua3DMdyYAlzTufTtsIgDnfCd2Q5TZ+qjjHT3NLhmeiYzPVMuzzXdOtMR4m8SaPloy TlzciA8ZDQQi5OoR/LCWA9/0y9m1pWjGExhlZH2U2YxWRZQetCA8PaXOwMpNrdL7Obt4gaKz9 ArNXLGxO6QN33Nvkht9T8TYgVj3Eme52eAlV6L2H9MaOYPss97GbtupgYR3firTnmSAXZge3z JyJ/Z1Fy5kfERnJqbFrkX7CDX6fUg0ILf0YhXhdmjwKZT X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,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, the patch LGTM. Regarding testcase char4_decl-2.f90, I played a little and found that one could in addition check the storage_size of aa, pp in the main and compare with storage_size (4_'foo') etc. Without your patch the storage sizes look odd. (Strictly speaking, a comparison like if (aa .ne. 4_'foo') stop 123 is not fully sufficient to catch such oddities.) Thanks, Harald Am 14.10.22 um 23:18 schrieb Tobias Burnus: > Long introduction - but the patch is rather simple: Don't use kind=3D1 > as type where kind=3D4 should be used. > > Looooong introduction + background, feel free to skip. > > ---------------------------- > > This popped up for libgomp/testsuite/libgomp.fortran/struct-elem-map-1.f= 90 > which uses kind=3D4 characters =E2=80=93 if Sandra's "Fortran: delineari= ze > multi-dimensional > array accesses" patch is applied. > > Patch: https://gcc.gnu.org/pipermail/gcc-patches/2020-December/562230.ht= ml > Used for OG11: > https://gcc.gnu.org/pipermail/gcc-patches/2021-November/584716.html > On the OG12 alias devel/omp/gcc-12 vendor branch, it is used: > https://gcc.gnu.org/g:39a8c371fda6136cf77c74895a00b136409e0ba3 > > * * * > > For mainline, I did not observe a wrong-code issue at runtime, still: > > void frobc (character(kind=3D4)[1:*_a] * & restrict a, ... > ... > static void frobc (character(kind=3D1) * & restrict, ... > > feels odd, i.e. having the definition as kind=3D4 and the declaration as > kind=3D1. > With the patch, it becomes: > > static void frobc (character(kind=3D4) * & restrict, character(kind=3D4)= * > &, ... > > =C2=A0* * * > > For the following, questionable code (=E2=86=92 PR107266), it is even wo= rse: > > character(kind=3D4) function f(x) bind(C) > =C2=A0 character(kind=3D4), value :: x > end > > this gives the following, which has the wrong ABI: > > character(kind=3D1) f (character(kind=3D1) x) > { > =C2=A0 (void) 0; > } > > With the patch, it becomes: > =C2=A0 character(kind=3D4) f (character(kind=3D4) x) > > =C2=A0* * * > > I think that all only exercises the trans-type.cc patch; > the trans-expr.cc code gets called =E2=80=93 as an assert shows, > but I fail to get a dump where this goes wrong. > > However, for struct-elem-map-1.f90 with mainline or with > OG12 and the patch: > =C2=A0 #pragma omp target map(tofrom:var.uni2[40 / 20] [len: 20]) > > while on OG12 without the attached patch: > =C2=A0 #pragma omp target map(tofrom:var.uni2[40 / 5] [len: 5]) > > where the problem is that TYPE_SIZE_UNIT is wrong. Whether > this only affects OG12 due to the delinearizer patch or > some code on mainline as well, I don't know. > > Still, I think it should be fixed ... > > ---------------------------- > > OK for mainline? > > 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