From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id AA5743858D28; Thu, 2 Nov 2023 18:18:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AA5743858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AA5743858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::433 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698949143; cv=none; b=JKTGUWqAIQDdha9dyC+V3YRxAaQEUand9A370tWxM6idEBG7NbAqI2IvCT8wPJvGH0zEK8E4GmSfwWSC5bLoHnUAoSfrHbtSYfLl4z9USm1SXI/FAid/Zu0tTj2WwdkVEazBZhVACpdN3uOe0oUnXdV8Uy8ubaht7kvbNZnmp0I= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698949143; c=relaxed/simple; bh=VI7bOjBKmKUPEjzNwh8prGIH77TFSKzXQuYt4dxP36A=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=hz3HUzSneADz81B+QDiSZXtmvRq1mvPRbdtKdV7iZDAl+LngGpkF69op7nsgauBLjRk/8a4X3P1xrCyOvsiB+5JQXgFlH1cwPqw87OndiSJU+EH8jEvf60DXj1gK3XbvW4XFnMtxfTgXuir95JJsWNLDBHVIUfmgDaRXP+wlCGQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-6b5e6301a19so1323198b3a.0; Thu, 02 Nov 2023 11:18:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698949130; x=1699553930; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Atri4s9tplWpdhfPnr0YXyVVKHVb2d0k6BSUwX1S3Ac=; b=DLcJp1TEJELF/03Oob3QqcVkWqWk2z0h2vc4F3ixjD66O17loyKW2TBm9F1GYEcSkN suc3+ohQEwuTU7HILPrqLpp2ZIKh9mjNhWd/FSLORVYTGAz6+/ZFlusiaKV+rVaj+ymb zsCYCUeImbLg/gaAsAICAzR36DnnaH3s0nc73bUNb4jSMSM62+K+v3C/siLQUlhm2alz CIiJqIwr4pPT1jIcP2DOt/5eUI0ctmP4NzF8R5V34UIfP9whl3ouEnQrkKyP/FfoQRJd 6rKs4l5/CV1+OpIVA3W3aoGdQRBxTpHHQ4Gibc9GJG4POTIj0pz+KmZHqP99zPTlf14C T0Bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698949130; x=1699553930; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Atri4s9tplWpdhfPnr0YXyVVKHVb2d0k6BSUwX1S3Ac=; b=OJXydAHVW8OKxEmRrEDG89/2BeNIcB2ZY8HZZ8Tq3nWZnQA11k7zvI6HUJXDFnVcy8 GBhyiS1kozRR6bM7njI6frMwZqZZN2dsNAFNuP7njXFlJaLOAIw/pMhn4EWzHW9pAxn5 J81V9smHTHvyW1ECWFKLOU14yYwokhAIq0xbI2X/sZPp0nOvo56FnrT3M/uapzvPxBis uyqH3TTiu8MxVKViQoICA66/p1ernA9nei7syhuHR3zGAs1JFlLDSGRhydxk8Zhfj6c1 mCt5rCqnrF8tbPlD63H4xGa8lCQLut1W1owB8iuRqB2PVCYDnvUWb8OE9/t4CLbt+JL7 73Ow== X-Gm-Message-State: AOJu0YxjCw0Pi8TQtipQN7SPWEwSl73/Fsg60DCIfjmEqgYHAXpQzK9g 6VoebPEi6xthl0lgD0WEK04QHVXMuvjkmpdnT9aHqUViN1w= X-Google-Smtp-Source: AGHT+IFXkDehotgMvVc/eqVS0Ex1CO5Uvk09DNy0qjgQ5+I97MyzChyr8aJvjqaK5gzEy+MVYn0h0ZHGc3dCQafLTj8= X-Received: by 2002:a05:6a21:99a9:b0:180:def9:20d4 with SMTP id ve41-20020a056a2199a900b00180def920d4mr9262881pzb.62.1698949130330; Thu, 02 Nov 2023 11:18:50 -0700 (PDT) MIME-Version: 1.0 References: <97147ff1-9d5b-4f0c-8a28-22d454d0476c@gmx.de> In-Reply-To: <97147ff1-9d5b-4f0c-8a28-22d454d0476c@gmx.de> From: Paul Richard Thomas Date: Thu, 2 Nov 2023 18:18:38 +0000 Message-ID: Subject: Re: [Patch, fortran] PR98498 - Interp request: defined operators and unlimited polymorphic To: Harald Anlauf Cc: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="00000000000067e1bc06092f6b8a" X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,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: --00000000000067e1bc06092f6b8a Content-Type: multipart/alternative; boundary="00000000000067e1b906092f6b88" --00000000000067e1b906092f6b88 Content-Type: text/plain; charset="UTF-8" Hi Harald, I was overthinking the problem. The rejected cases led me to a fix that can only be described as a considerable simplification compared with the first patch! The testcase now reflects the requirements of the standard and regtests without failures. OK for mainline? Thanks Paul Fortran: Defined operators with unlimited polymorphic args [PR98498] 2023-11-02 Paul Thomas gcc/fortran PR fortran/98498 * interface.cc (upoly_ok): Defined operators using unlimited polymorphic formal arguments must not override the intrinsic operator use. gcc/testsuite/ PR fortran/98498 * gfortran.dg/interface_50.f90: New test. On Wed, 1 Nov 2023 at 20:12, Harald Anlauf wrote: > Hi Paul, > > Am 01.11.23 um 19:02 schrieb Paul Richard Thomas: > > The interpretation request came in a long time ago but I only just got > > around to implementing it. > > > > The updated text from the standard is in the comment. Now I am writing > > this, I think that I should perhaps use switch(op)/case rather than using > > if/else if and depending on the order of the gfc_intrinsic_op enum being > > maintained. Thoughts? > > the logic is likely harder to parse with if/else than with > switch(op)/case. However, I do not think that the order of > the enum will ever be changed, as the module format relies > on that very order. > > > The testcase runs fine with both mainline and nagfor. I think that > > compile-only with counts of star-eq and star_not should suffice. > > I found other cases that are rejected even with your patch, > but which are accepted by nagfor. Example: > > print *, ('a' == c) > > Nagfor prints F at runtime as expected, as it correctly resolves > this to star_eq. Further examples can be easily constructed. > > Can you have a look? > > Thanks, > Harald > > > Regtests with no regressions. OK for mainline? > > > > Paul > > > > Fortran: Defined operators with unlimited polymorphic args [PR98498] > > > > 2023-11-01 Paul Thomas > > > > gcc/fortran > > PR fortran/98498 > > * interface.cc (upoly_ok): New function. > > (gfc_extend_expr): Use new function to ensure that defined > > operators using unlimited polymorphic formal arguments do not > > override their intrinsic uses. > > > > gcc/testsuite/ > > PR fortran/98498 > > * gfortran.dg/interface_50.f90: New test. > > > > --00000000000067e1b906092f6b88-- --00000000000067e1bc06092f6b8a Content-Type: text/x-patch; charset="US-ASCII"; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lohiemlw0 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYyBiL2djYy9m b3J0cmFuL2ludGVyZmFjZS5jYwppbmRleCA4YzQ1NzFlMGFhNi4uZmM0ZmU2 NjJlYWIgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYwor KysgYi9nY2MvZm9ydHJhbi9pbnRlcmZhY2UuY2MKQEAgLTQ3MzcsNiArNDcz NywxNyBAQCBnZmNfZXh0ZW5kX2V4cHIgKGdmY19leHByICplKQogCSAgaWYg KHN5bSAhPSBOVUxMKQogCSAgICBicmVhazsKIAl9CisKKyAgICAgIC8qIEYy MDE4KDE1LjQuMy40LjIpIHJlcXVpcmVzIHRoYXQgdGhlIHVzZSBvZiB1bmxp bWl0ZWQgcG9seW1vcnBoaWMKKwkgZm9ybWFsIGFyZ3VtZW50cyBkb2VzIG5v dCBvdmVycmlkZSB0aGUgaW50cmluc2ljIHVzZXMuICAqLworICAgICAgZ2Zj X3B1c2hfc3VwcHJlc3NfZXJyb3JzICgpOworICAgICAgaWYgKHN5bQorCSAg JiYgKFVOTElNSVRFRF9QT0xZIChzeW0tPmZvcm1hbC0+c3ltKQorCSAgICAg IHx8IChzeW0tPmZvcm1hbC0+bmV4dAorCQkgICYmIFVOTElNSVRFRF9QT0xZ IChzeW0tPmZvcm1hbC0+bmV4dC0+c3ltKSkpCisJICAmJiAhZ2ZjX2NoZWNr X29wZXJhdG9yX2ludGVyZmFjZSAoc3ltLCBlLT52YWx1ZS5vcC5vcCwgZS0+ d2hlcmUpKQorCXN5bSA9IE5VTEw7CisgICAgICBnZmNfcG9wX3N1cHByZXNz X2Vycm9ycyAoKTsKICAgICB9CiAKICAgLyogVE9ETzogRG8gYW4gYW1iaWd1 aXR5LWNoZWNrIGFuZCBlcnJvciBpZiBtdWx0aXBsZSBtYXRjaGluZyBpbnRl cmZhY2VzIGFyZQo= --00000000000067e1bc06092f6b8a Content-Type: text/x-fortran; charset="US-ASCII"; name="interface_50.f90" Content-Disposition: attachment; filename="interface_50.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lohif2ys1 ISB7IGRnLWRvIGNvbXBpbGUgfQohIHsgZGctb3B0aW9ucyAiLWZkdW1wLXRy ZWUtb3JpZ2luYWwiIH0KIQohIFRlc3RzIHRoZSBmaXggZm9yIFBSOTg0OTgs IHdoaWNoIHdhcyBzdWJqZWN0IHRvIGFuIGludGVycHJldGF0aW9uIHJlcXVl c3QKISBhcyB0byB3aGV0aGVyIG9yIG5vdCB0aGUgaW50ZXJmYWNlIG9wZXJh dG9yIG92ZXJyb2RlIHRoZSBpbnRyaW5zaWMgdXNlLgohIChTZWUgUFIgZm9y IGNvcnJlc3BvbmRlbmNlKQohCiEgQ29udHJpYnV0ZWQgYnkgUGF1bCBUaG9t YXMgIDxwYXVsdEBnY2MuZ251Lm9yZz4KIQpNT0RVTEUgbXl0eXBlcwogIElN UExJQ0lUIG5vbmUKCiAgVFlQRSBwdmFyCiAgICAgY2hhcmFjdGVyKGxlbj0y MCkgOjogbmFtZQogICAgIGludGVnZXIgICAgICAgICAgIDo6IGxldmVsCiAg ZW5kIFRZUEUgcHZhcgoKICBpbnRlcmZhY2Ugb3BlcmF0b3IgKD09KQogICAg IG1vZHVsZSBwcm9jZWR1cmUgc3Rhcl9lcQogIGVuZCBpbnRlcmZhY2UKCiAg aW50ZXJmYWNlIG9wZXJhdG9yICgubm90LikKICAgICBtb2R1bGUgcHJvY2Vk dXJlIHN0YXJfbm90CiAgZW5kIGludGVyZmFjZQoKY29udGFpbnMKICBmdW5j dGlvbiBzdGFyX2VxKGEsIGIpCiAgICBpbXBsaWNpdCBub25lCiAgICBjbGFz cygqKSwgaW50ZW50KGluKSA6OiBhLCBiCiAgICBsb2dpY2FsIDo6IHN0YXJf ZXEKICAgIHNlbGVjdCB0eXBlIChhKQogICAgICB0eXBlIGlzIChwdmFyKQog ICAgICBzZWxlY3QgdHlwZSAoYikKICAgICAgICB0eXBlIGlzIChwdmFyKQog ICAgICAgICAgaWYoKGElbGV2ZWwgLmVxLiBiJWxldmVsKSAuYW5kLiAoYSVu YW1lIC5lcS4gYiVuYW1lKSkgdGhlbgogICAgICAgICAgICBzdGFyX2VxID0g LnRydWUuCiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHN0YXJfZXEgPSAu ZmFsc2UuCiAgICAgICAgICBlbmQgaWYKICAgICAgICB0eXBlIGlzIChpbnRl Z2VyKQogICAgICAgICAgc3Rhcl9lcSA9IChhJWxldmVsID09IGIpCiAgICAg IGVuZCBzZWxlY3QKICAgICAgY2xhc3MgZGVmYXVsdAogICAgICAgIHN0YXJf ZXEgPSAuZmFsc2UuCiAgICBlbmQgc2VsZWN0CiAgZW5kIGZ1bmN0aW9uIHN0 YXJfZXEKCiAgZnVuY3Rpb24gc3Rhcl9ub3QgKGEpCiAgICBpbXBsaWNpdCBu b25lCiAgICBjbGFzcygqKSwgaW50ZW50KGluKSA6OiBhCiAgICB0eXBlKHB2 YXIpIDo6IHN0YXJfbm90CiAgICBzZWxlY3QgdHlwZSAoYSkKICAgICAgdHlw ZSBpcyAocHZhcikKICAgICAgICBzdGFyX25vdCA9IGEKICAgICAgICBzdGFy X25vdCVsZXZlbCA9IC1zdGFyX25vdCVsZXZlbAogICAgICB0eXBlIGlzIChy ZWFsKQogICAgICAgIHN0YXJfbm90ID0gcHZhciAoInJlYWwiLCAtaW50KGEp KQogICAgICBjbGFzcyBkZWZhdWx0CiAgICAgICAgc3Rhcl9ub3QgPSBwdmFy ICgibm9uYW1lIiwgMCkKICAgIGVuZCBzZWxlY3QKICBlbmQgZnVuY3Rpb24K CmVuZCBNT0RVTEUgbXl0eXBlcwoKcHJvZ3JhbSB0ZXN0X2VxCiAgIHVzZSBt eXR5cGVzCiAgIGltcGxpY2l0IG5vbmUKCiAgIHR5cGUocHZhcikgeCwgeQog ICBpbnRlZ2VyIDo6IGkgPSA0CiAgIHJlYWwgOjogciA9IDIuMAogICBjaGFy YWN0ZXIobGVuID0gNCwga2luZCA9NCkgOjogYyA9ICJhYmNkIgohIENoZWNr IHRoYXQgaW50cmluc2ljIHVzZSBvZiAubm90LiBhbmQgPT0gaXMgbm90IG92 ZXJyaWRkZW4uCiAgIGlmICgubm90LihpID09IDIqaW50IChyKSkpIHN0b3Ag MQogICBpZiAociA9PSAxLjApIHN0b3AgMgoKISBUZXN0IGRlZmluZWQgb3Bl cmF0b3IgPT0KICAgeCA9IHB2YXIoJ3Rlc3QgMScsIDEwMCkKICAgeSA9IHB2 YXIoJ3Rlc3QgMScsIDEwMCkKICAgaWYgKC5ub3QuKHggPT0geSkpIHN0b3Ag MwogICB5ID0gcHZhcigndGVzdCAyJywgMTAwKQogICBpZiAoeCA9PSB5KSBz dG9wIDQKICAgaWYgKHggPT0gcikgc3RvcCA1ICAgICAgICAgICAgISBjbGFz cyBkZWZhdWx0IGdpdmVzIC5mYWxzZS4KICAgaWYgKDEwMCA9PSB4KSBzdG9w IDYgICAgICAgICAgISAgICAgICBkaXR0bwogICBpZiAoLm5vdC4oeCA9PSAx MDApKSBzdG9wIDcgICAhIGludGVnZXIgc2VsZWN0b3IgZ2l2ZXMgYSVsZXZl bCA9PSBiCiAgIGlmIChpID09ICJjIikgc3RvcCA4ICAgICAgICAgICEgdHlw ZSBtaXNtYXRjaCA9PiBjYWxscyBzdGFyX2VxCiAgIGlmIChjID09ICJhYmNk Iikgc3RvcCA5ICAgICAgICEga2luZCBtaXNtYXRjaCA9PiBjYWxscyBzdGFy X2VxCgohIFRlc3QgZGVmaW5lZCBvcGVyYXRvciAubm90LgogICB5ID0gLm5v dC54CiAgIGlmICh5JWxldmVsIC5uZS4gLXglbGV2ZWwpIHN0b3AgMTEKICAg eSA9IC5ub3QuaQogICBpZiAoeSVsZXZlbCAubmUuIDAgLmFuZC4gdHJpbSh5 JW5hbWUpIC5uZS4gIm5vbmFtZSIpIHN0b3AgMTIKICAgeSA9IC5ub3Qucgog ICBpZiAoeSVsZXZlbCAubmUuIC0yIC5hbmQuIHRyaW0oeSVuYW1lKSAubmUu ICJyZWFsIikgc3RvcCAxMwplbmQgcHJvZ3JhbSB0ZXN0X2VxCiEgeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJzdGFyX2VxIiAxNCAib3Jp Z2luYWwiIH0gfQohIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAic3Rhcl9ub3QiIDExICJvcmlnaW5hbCIgfSB9Cg== --00000000000067e1bc06092f6b8a--