From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) by sourceware.org (Postfix) with ESMTPS id 369753858D1E; Wed, 1 Nov 2023 18:03:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 369753858D1E 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 369753858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::634 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698861798; cv=none; b=dj21hXi1PN+UEy2xl1U2rzW2idOsD1fVvYwtK4BlP8H70BM6oj5QQL9oPA6q30fb+AlQfCR145T0hggGUIhWLZF7m3kZoL75LncoaKmJYUI2swqS+J7YUPyjfMCCGv2Jw5pF4/bstFSTDl5Skn0Fug6b5EUlZcQZK3+967JPcW0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698861798; c=relaxed/simple; bh=n+EAQI14+J7px3VqtRMTew1gYOfUp35OOvw8opr+07c=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=h7BKyfzorWxQPbNYvOrOEetBOCVQnIznqFBsokbWKgaEOMDnKpOvAkrCOXn1tX1KLvQV6ReaQlJpNMAFZQg8gGoIQzBuuPLEDxAiJtavrPkiKIdH108l35aRgPnhEuLTPX7oiM7slH2dop++7jv22iZ1ZlD5+Sc+V+Qv9zhGPPM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-1cc5916d578so109085ad.2; Wed, 01 Nov 2023 11:03:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698861787; x=1699466587; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=fIrEogCkmvthXgeoUX/zClXiq5Y/tGCXH0wX5EvmQsE=; b=diaVinTStNzbZnrpt/LkRo1GcPIlVa14Umw42IvVTu0VhCL+cRqlQDmKOhqJm3KDGp 0dgXtucsF6qZ8OEAJFfMGBpt8R9erUbRA0jEDCNVhGHIpu98nGS11zn3QYHwTKykH/jk FTKcCX25SNg4qDxJnLCeNNDDrcwBqWRpXVGCh4ngoyv9FF8veTWDl0xKwtNePDWWfXaU 0USNg6mtcKuQYVDUAaUYJc2mHecU24rDrZyr/GDQd98xVBT2JxvTYLiOcSqFRUJwSvpe a0mGxEQT3d6n162hMK30ffBJiIuSmsv9Cc5ausRPJ7X4HRta2U3Jglt4sU5fya/SvKIT i74w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698861787; x=1699466587; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=fIrEogCkmvthXgeoUX/zClXiq5Y/tGCXH0wX5EvmQsE=; b=k9tpJ3/rpZCq6EfZIQwiscPjCnD5lcJVmEA6IilxdbPStK0yVwPTD1bo3H65sTgHr2 zaBAL+XQiC6aTuEAu6D/AyVxj6sMtpCDXzi3+0hC2C4v96L6f7Q2BTXeypCvBUJVHlKh +yKBbclePdjq7oDpepzvRCdtKQ5jFyib8+SOa1QjXq3OihlmOIsXOyM8wJi9Cm32uhu/ kauDYosXW0pzhK6ns/jGdTdLGFTU1dD2fgb/y/HPPaGesIJ6BWJBCyZJp/wShynpjrau CPDYq0dCDjZZRFrJ3pZKseB4rFatNFYI9zhcUZeN0w0eDzUNVNQkfQCvfo712Cho6ogY +j5g== X-Gm-Message-State: AOJu0YyNmqbhottQNHwtXT9VHL3JQ2JuYV4uZoU3zI9wGhTTY0glOvDN wNuJqbhGl46fZjggA8XrvHSkIsFGgaIK0vCYW0hhR7zIlX4= X-Google-Smtp-Source: AGHT+IFShhP6JfS6O1XwpEHOysoMHtnFrvHn90IUlDQvefDY1dKkvQHtKznNcRQkFCGcceZ910KQx40k43LQ2Ivp38E= X-Received: by 2002:a17:903:2286:b0:1cc:43ca:b5b3 with SMTP id b6-20020a170903228600b001cc43cab5b3mr12067443plh.28.1698861786549; Wed, 01 Nov 2023 11:03:06 -0700 (PDT) MIME-Version: 1.0 From: Paul Richard Thomas Date: Wed, 1 Nov 2023 18:02:55 +0000 Message-ID: Subject: [Patch, fortran] PR98498 - Interp request: defined operators and unlimited polymorphic To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="0000000000005016b406091b1527" X-Spam-Status: No, score=-7.4 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: --0000000000005016b406091b1527 Content-Type: multipart/alternative; boundary="0000000000005016b306091b1525" --0000000000005016b306091b1525 Content-Type: text/plain; charset="UTF-8" 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 testcase runs fine with both mainline and nagfor. I think that compile-only with counts of star-eq and star_not should suffice. 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. --0000000000005016b306091b1525-- --0000000000005016b406091b1527 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_log2fa3m0 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYyBiL2djYy9m b3J0cmFuL2ludGVyZmFjZS5jYwppbmRleCA4YzQ1NzFlMGFhNi4uYmE3ZmI1 ZGZlYTUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYwor KysgYi9nY2MvZm9ydHJhbi9pbnRlcmZhY2UuY2MKQEAgLTQ2MTYsNiArNDYx NiwzNSBAQCBidWlsZF9jb21wY2FsbF9mb3Jfb3BlcmF0b3IgKGdmY19leHBy KiBlLCBnZmNfYWN0dWFsX2FyZ2xpc3QqIGFjdHVhbCwKIH0KIAogCisvKiBD aGVjayBpZiB0aGUgdHlwZSBvZiBhbiBhY3R1YWwgYXJndW1lbnQgaXMgT0sg dG8gdXNlIHdpdGggYW4KKyAgIHVubGltaXRlZCBwb2x5bW9ycGhpYyBmb3Jt YWwgYXJndW1lbnQgaW4gYSBkZWZpbmVkIG9wZXJhdGlvbi4gICovCisKK3N0 YXRpYyBib29sCit1cG9seV9vayAoYnQgdHlwZSwgZ2ZjX2ludHJpbnNpY19v cCBvcCkKK3sKKyAgYm9vbCBvayA9IGZhbHNlOworICBpZiAodHlwZSA9PSBC VF9ERVJJVkVEIHx8IHR5cGUgPT0gQlRfQ0xBU1MpCisgICAgb2sgPSB0cnVl OworICBlbHNlIGlmICgob3AgPj0gSU5UUklOU0lDX1VQTFVTICYmIG9wIDw9 IElOVFJJTlNJQ19QT1dFUikKKwkgICAmJiAodHlwZSA9PSBCVF9MT0dJQ0FM IHx8IHR5cGUgPT0gQlRfQ0hBUkFDVEVSKSkKKyAgICBvayA9IHRydWU7Cisg IGVsc2UgaWYgKChvcCA9PSBJTlRSSU5TSUNfQ09OQ0FUKSAmJiAodHlwZSAh PSBCVF9DSEFSQUNURVIpKQorICAgIG9rID0gdHJ1ZTsKKyAgZWxzZSBpZiAo KG9wID49IElOVFJJTlNJQ19HVCAmJiBvcCA8PSBJTlRSSU5TSUNfTEUpCisJ ICAgJiYgKHR5cGUgPT0gQlRfQ09NUExFWCkpCisgICAgb2sgPSB0cnVlOwor ICBlbHNlIGlmICgob3AgPj0gSU5UUklOU0lDX0dUX09TKSAmJiAob3AgPD0g SU5UUklOU0lDX0xFX09TKQorCSAgICYmICh0eXBlID09IEJUX0NPTVBMRVgp KQorICAgIG9rID0gdHJ1ZTsKKyAgZWxzZSBpZiAoKG9wID49IElOVFJJTlNJ Q19BTkQpICYmIChvcCA8PSBJTlRSSU5TSUNfTkVRVikKKwkgICAmJiAodHlw ZSAhPSBCVF9MT0dJQ0FMKSkKKyAgICBvayA9IHRydWU7CisgIGVsc2UgaWYg KChvcCA9PSBJTlRSSU5TSUNfTk9UKSAmJiAodHlwZSAhPSBCVF9MT0dJQ0FM KSkKKyAgICBvayA9IHRydWU7CisgIHJldHVybiBvazsKK30KKworCiAvKiBU aGlzIHN1YnJvdXRpbmUgaXMgY2FsbGVkIHdoZW4gYW4gZXhwcmVzc2lvbiBp cyBiZWluZyByZXNvbHZlZC4KICAgIFRoZSBleHByZXNzaW9uIG5vZGUgaW4g cXVlc3Rpb24gaXMgZWl0aGVyIGEgdXNlciBkZWZpbmVkIG9wZXJhdG9yCiAg ICBvciBhbiBpbnRyaW5zaWMgb3BlcmF0b3Igd2l0aCBhcmd1bWVudHMgdGhh dCBhcmVuJ3QgY29tcGF0aWJsZQpAQCAtNDczNyw2ICs0NzY2LDI0IEBAIGdm Y19leHRlbmRfZXhwciAoZ2ZjX2V4cHIgKmUpCiAJICBpZiAoc3ltICE9IE5V TEwpCiAJICAgIGJyZWFrOwogCX0KKworICAgICAgLyogRjIwMTgoMTUuNC4z LjQuMik6ICJJZiB0aGUgb3BlcmF0b3IgaXMgYW4gaW50cmluc2ljLW9wZXJh dG9yIChSNjA4KSwKKwkgdGhlIG51bWJlciBvZiBkdW1teSBhcmd1bWVudHMg c2hhbGwgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBpbnRyaW5zaWMKKwkgdXNl cyBvZiB0aGF0IG9wZXJhdG9yLCBhbmQgdGhlIHR5cGVzLCBraW5kIHR5cGUg cGFyYW1ldGVycywgb3IgcmFua3MKKwkgb2YgdGhlIGR1bW15IGFyZ3VtZW50 cyBzaGFsbCBkaWZmZXIgZnJvbSB0aG9zZSByZXF1aXJlZCBmb3IgdGhlCisJ IGludHJpbnNpYyBvcGVyYXRpb24gKDEwLjEuNSkuIiBpZS4gdGhlIHVzZSBv ZiB1bmxpbWl0ZWQgcG9seW1vcnBoaWMKKwkgZm9ybWFsIGFyZ3VtZW50cyBt dXN0IG5vdCBvdmVycmlkZSB0aGUgaW50cmluc2ljIHVzZXMuICAqLworICAg ICAgaWYgKHN5bSAmJiAoVU5MSU1JVEVEX1BPTFkgKHN5bS0+Zm9ybWFsLT5z eW0pCisJCSAgfHwgKHN5bS0+Zm9ybWFsLT5uZXh0CisJCSAgICAgICYmIFVO TElNSVRFRF9QT0xZIChzeW0tPmZvcm1hbC0+bmV4dC0+c3ltKSkpKQorCXsK KwkgIGJvb2wgYXJnMiA9IChhY3R1YWwtPm5leHQgIT0gTlVMTCk7CisJICBi b29sIGExb2sgPSB1cG9seV9vayAoYWN0dWFsLT5leHByLT50cy50eXBlLCBl LT52YWx1ZS5vcC5vcCk7CisJICBib29sIGEyb2sgPSBhcmcyICYmIHVwb2x5 X29rIChhY3R1YWwtPm5leHQtPmV4cHItPnRzLnR5cGUsCisJCQkJCWUtPnZh bHVlLm9wLm9wKTsKKwkgIGlmICgoIWFyZzIgJiYgIWExb2spIHx8IChhcmcy ICYmICghYTFvayAmJiAhYTJvaykpKQorCSAgICBzeW0gPSBOVUxMOworCX0K ICAgICB9CiAKICAgLyogVE9ETzogRG8gYW4gYW1iaWd1aXR5LWNoZWNrIGFu ZCBlcnJvciBpZiBtdWx0aXBsZSBtYXRjaGluZyBpbnRlcmZhY2VzIGFyZQo= --0000000000005016b406091b1527 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_log2fgj81 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 ICBpbnRlZ2VyIDo6IGkgPSA0CiAgIHJlYWwgOjogciA9IDIuMAohIENoZWNr IHRoYXQgaW50cmluc2ljIHVzZSBvZiAubm90LiBhbmQgPT0gaXMgbm90IG92 ZXJyaWRkZW4uCiAgIGlmICgubm90LihpID09IDIqaW50IChyKSkpIHN0b3Ag MQogICBpZiAociA9PSAxLjApIHN0b3AgMgoKISBUZXN0IGRlZmluZWQgb3Bl cmF0b3IgPT0KICAgeCA9IHB2YXIoJ3Rlc3QgMScsIDEwMCkKICAgeSA9IHB2 YXIoJ3Rlc3QgMScsIDEwMCkKICAgaWYgKC5ub3QuKHggPT0geSkpIHN0b3Ag MwogICB5ID0gcHZhcigndGVzdCAyJywgMTAwKQogICBpZiAoeCA9PSB5KSBz dG9wIDQKICAgaWYgKHggPT0gcikgc3RvcCA1ICAgICAgICAgICAgISBjbGFz cyBkZWZhdWx0IGdpdmVzIC5mYWxzZS4KICAgaWYgKDEwMCA9PSB4KSBzdG9w IDYgICAgICAgICAgISAgICAgICBkaXR0bwogICBpZiAoLm5vdC4oeCA9PSAx MDApKSBzdG9wIDcgICAhIGludGVnZXIgc2VsZWN0b3IgZ2l2ZXMgYSVsZXZl bCA9PSBiCgohIFRlc3QgZGVmaW5lZCBvcGVyYXRvciAubm90LgogICB5ID0g Lm5vdC54CiAgIGlmICh5JWxldmVsIC5uZS4gLXglbGV2ZWwpIHN0b3AgMTEK ICAgeSA9IC5ub3QuaQogICBpZiAoeSVsZXZlbCAubmUuIDAgLmFuZC4gdHJp bSh5JW5hbWUpIC5uZS4gIm5vbmFtZSIpIHN0b3AgMTIKICAgeSA9IC5ub3Qu cgogICBpZiAoeSVsZXZlbCAubmUuIC0yIC5hbmQuIHRyaW0oeSVuYW1lKSAu bmUuICJyZWFsIikgc3RvcCAxMwplbmQgcHJvZ3JhbSB0ZXN0X2VxCiEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJzdGFyX2VxIiAxMiAi b3JpZ2luYWwiIH0gfQohIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAic3Rhcl9ub3QiIDExICJvcmlnaW5hbCIgfSB9Cg== --0000000000005016b406091b1527--