From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.io (ciao.gmane.io [116.202.254.214]) by sourceware.org (Postfix) with ESMTPS id A11AF3858D1E for ; Sun, 5 Mar 2023 20:21:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A11AF3858D1E Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=m.gmane-mx.org Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pYurc-0003Wd-8e for gcc-patches@gcc.gnu.org; Sun, 05 Mar 2023 21:21:48 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: gcc-patches@gcc.gnu.org From: Harald Anlauf Subject: [PATCH, v3] Fortran: fix CLASS attribute handling [PR106856] Date: Sun, 5 Mar 2023 21:21:41 +0100 Message-ID: References: <5b42f0b7-e217-555d-b1f2-4b623f3ae150@orange.fr> <5f1e8202-303e-5da2-c42b-8eab00a12a97@orange.fr> <48caf060-4349-b077-24da-8bf53ed4b650@gmx.de> <614d6385-49fe-4869-ef4b-8afa175d3693@orange.fr> <871e46b4-af10-c8fc-105c-9aec987e2cac@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------SxzE8kS3JW4lMXYRMnW7e8Sy" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US In-Reply-To: Cc: fortran@gcc.gnu.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,BODY_8BITS,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,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: This is a multi-part message in MIME format. --------------SxzE8kS3JW4lMXYRMnW7e8Sy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Mikael, Am 04.03.23 um 23:29 schrieb Mikael Morin: > Le 04/03/2023 à 22:20, Harald Anlauf a écrit : >> Hi Mikael, >> >> Am 04.03.23 um 18:09 schrieb Mikael Morin: >>> There was a comment about the old_symbol thing at the end of my previous >>> message: >>> https://gcc.gnu.org/pipermail/gcc-patches/2023-March/613354.html >> >> I think Tobias might be the better person to answer this. >> But when playing with variations of that else-branch, >> I always hit an issue with class_74.f90, where the class >> variables are not dummy arguments but local variables. >> >> E.g. take the following reduced testcase: >> >> subroutine foo >>    class(*)  :: y >>    dimension :: y(:,:) >>    pointer   :: y >> end subroutine foo >> >> So when we see the dimension but haven't seen the >> pointer (or allocatable) declaration, we appear to >> generate an error with bad consequences (ICE). >> >> If this is a resolution issue, maybe it can be fixed >> differently, but likely needs digging deeper.  With >> the patch as-is at least I do not see a memory leak >> in that context. >> > One of my suggestions was to fix it as attached. > It is probably more clear with an actual patch to look at. > It seems to work on your example and class_74 as well. This fix is great. I've included it in the revised patch. > It seems to also fix some valgrind errors on this example: >    subroutine foo >      pointer   :: y >      dimension :: y(:,:) >      class(*)  :: y >    end subroutine foo > I'm fine with that fix if it works for you. I've added this variant to class_74.f90, so it won't break without noticing. > I suggest waiting for next stage 1, but it's your call, you have the > green light from Steve anyway. I've chosen to push patch v3 (attached) after a further round of regtesting as r13-6497-g6aa1f40a326374 . > Thanks for your work. Many thanks for your very helpful review! Harald --------------SxzE8kS3JW4lMXYRMnW7e8Sy Content-Type: text/x-patch; charset=UTF-8; name="pr106856-v3.diff" Content-Disposition: attachment; filename="pr106856-v3.diff" Content-Transfer-Encoding: base64 RnJvbSA2YWExZjQwYTMyNjM3NDFkOTY0ZWY0NzE2ZTg1YTBkZjVjZWM4M2I2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUaHUsIDIgTWFyIDIwMjMgMjI6Mzc6MTQgKzAxMDAKU3ViamVjdDogW1BBVENIXSBG b3J0cmFuOiBmaXggQ0xBU1MgYXR0cmlidXRlIGhhbmRsaW5nIFtQUjEwNjg1Nl0KCmdjYy9m b3J0cmFuL0NoYW5nZUxvZzoKCglQUiBmb3J0cmFuLzEwNjg1NgoJKiBjbGFzcy5jYyAoZ2Zj X2J1aWxkX2NsYXNzX3N5bWJvbCk6IEhhbmRsZSB1cGRhdGUgb2YgYXR0cmlidXRlcyBvZgoJ ZXhpc3RpbmcgY2xhc3MgY29udGFpbmVyLgoJKGdmY19maW5kX2Rlcml2ZWRfdnRhYik6IEZp eCBzZXZlcmFsIG1lbW9yeSBsZWFrcy4KCShmaW5kX2ludHJpbnNpY192dGFiKTogRGl0dG8u CgkqIGRlY2wuY2MgKGF0dHJfZGVjbDEpOiBNYW5hZ2UgdXBkYXRlIG9mIHN5bWJvbCBhdHRy aWJ1dGVzIGZyb20KCUNMQVNTIGF0dHJpYnV0ZXMuCgkqIHByaW1hcnkuY2MgKGdmY192YXJp YWJsZV9hdHRyKTogT1BUSU9OQUwgc2hhbGwgbm90IGJlIHRha2VuIG9yCgl1cGRhdGVkIGZy b20gdGhlIGNsYXNzIGNvbnRhaW5lci4KCSogc3ltYm9sLmNjIChmcmVlX29sZF9zeW1ib2wp OiBBZGp1c3QgbWFuYWdlbWVudCBvZiBzeW1ib2wgdmVyc2lvbnMKCXRvIG5vdCBwcmVtYXR1 cmVseSBmcmVlIGFycmF5IHNwZWNzIHdoaWxlIHdvcmtpbmcgb24gdGhlIGRlY2xhdGlvbgoJ b2YgQ0xBU1MgdmFyaWFibGVzLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJUFIgZm9y dHJhbi8xMDY4NTYKCSogZ2ZvcnRyYW4uZGcvaW50ZXJmYWNlXzQxLmY5MDogUmVtb3ZlIGRn LXBhdHRlcm4gZnJvbSB2YWxpZCB0ZXN0Y2FzZS4KCSogZ2ZvcnRyYW4uZGcvY2xhc3NfNzQu ZjkwOiBOZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcvY2xhc3NfNzUuZjkwOiBOZXcgdGVzdC4K CkNvLWF1dGhvcmVkLWJ5OiBUb2JpYXMgQnVybnVzICA8dG9iaWFzQGNvZGVzb3VyY2VyeS5j b20+Ci0tLQogZ2NjL2ZvcnRyYW4vY2xhc3MuY2MgICAgICAgICAgICAgICAgICAgICAgIHwg IDI1ICsrKy0KIGdjYy9mb3J0cmFuL2RlY2wuY2MgICAgICAgICAgICAgICAgICAgICAgICB8 ICA1NiArKysrLS0tLQogZ2NjL2ZvcnRyYW4vcHJpbWFyeS5jYyAgICAgICAgICAgICAgICAg ICAgIHwgICAxIC0KIGdjYy9mb3J0cmFuL3N5bWJvbC5jYyAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArLQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc183NC5mOTAgICAg IHwgMTUxICsrKysrKysrKysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9jbGFzc183NS5mOTAgICAgIHwgIDI0ICsrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvaW50ZXJmYWNlXzQxLmY5MCB8ICAgMiArLQogNyBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5z ZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc183NC5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NsYXNzXzc1LmY5MAoKZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL2NsYXNzLmNjIGIvZ2NjL2ZvcnRyYW4vY2xhc3MuY2MKaW5kZXggYWU2NTNl NzQ0MzcuLjUyMjM1YWI4M2UzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9jbGFzcy5jYwor KysgYi9nY2MvZm9ydHJhbi9jbGFzcy5jYwpAQCAtNjM4LDYgKzYzOCw3IEBAIGdmY19idWls ZF9jbGFzc19zeW1ib2wgKGdmY190eXBlc3BlYyAqdHMsIHN5bWJvbF9hdHRyaWJ1dGUgKmF0 dHIsCiB7CiAgIGNoYXIgdG5hbWVbR0ZDX01BWF9TWU1CT0xfTEVOKzFdOwogICBjaGFyICpu YW1lOworICBnZmNfdHlwZXNwZWMgKm9yaWdfdHMgPSB0czsKICAgZ2ZjX3N5bWJvbCAqZmNs YXNzOwogICBnZmNfc3ltYm9sICp2dGFiOwogICBnZmNfY29tcG9uZW50ICpjOwpAQCAtNjQ2 LDkgKzY0NywyMSBAQCBnZmNfYnVpbGRfY2xhc3Nfc3ltYm9sIChnZmNfdHlwZXNwZWMgKnRz LCBzeW1ib2xfYXR0cmlidXRlICphdHRyLAogCiAgIGdjY19hc3NlcnQgKGFzKTsKIAotICBp ZiAoYXR0ci0+Y2xhc3Nfb2spCi0gICAgLyogQ2xhc3MgY29udGFpbmVyIGhhcyBhbHJlYWR5 IGJlZW4gYnVpbHQuICAqLworICAvKiBDbGFzcyBjb250YWluZXIgaGFzIGFscmVhZHkgYmVl biBidWlsdCB3aXRoIHNhbWUgbmFtZS4gICovCisgIGlmIChhdHRyLT5jbGFzc19vaworICAg ICAgJiYgdHMtPnUuZGVyaXZlZC0+Y29tcG9uZW50cy0+YXR0ci5kaW1lbnNpb24gPj0gYXR0 ci0+ZGltZW5zaW9uCisgICAgICAmJiB0cy0+dS5kZXJpdmVkLT5jb21wb25lbnRzLT5hdHRy LmNvZGltZW5zaW9uID49IGF0dHItPmNvZGltZW5zaW9uCisgICAgICAmJiB0cy0+dS5kZXJp dmVkLT5jb21wb25lbnRzLT5hdHRyLmNsYXNzX3BvaW50ZXIgPj0gYXR0ci0+cG9pbnRlcgor ICAgICAgJiYgdHMtPnUuZGVyaXZlZC0+Y29tcG9uZW50cy0+YXR0ci5hbGxvY2F0YWJsZSA+ PSBhdHRyLT5hbGxvY2F0YWJsZSkKICAgICByZXR1cm4gdHJ1ZTsKKyAgaWYgKGF0dHItPmNs YXNzX29rKQorICAgIHsKKyAgICAgIGF0dHItPmRpbWVuc2lvbiB8PSB0cy0+dS5kZXJpdmVk LT5jb21wb25lbnRzLT5hdHRyLmRpbWVuc2lvbjsKKyAgICAgIGF0dHItPmNvZGltZW5zaW9u IHw9IHRzLT51LmRlcml2ZWQtPmNvbXBvbmVudHMtPmF0dHIuY29kaW1lbnNpb247CisgICAg ICBhdHRyLT5wb2ludGVyIHw9IHRzLT51LmRlcml2ZWQtPmNvbXBvbmVudHMtPmF0dHIuY2xh c3NfcG9pbnRlcjsKKyAgICAgIGF0dHItPmFsbG9jYXRhYmxlIHw9IHRzLT51LmRlcml2ZWQt PmNvbXBvbmVudHMtPmF0dHIuYWxsb2NhdGFibGU7CisgICAgICB0cyA9ICZ0cy0+dS5kZXJp dmVkLT5jb21wb25lbnRzLT50czsKKyAgICB9CiAKICAgYXR0ci0+Y2xhc3Nfb2sgPSBhdHRy LT5kdW1teSB8fCBhdHRyLT5wb2ludGVyIHx8IGF0dHItPmFsbG9jYXRhYmxlCiAJCSAgIHx8 IGF0dHItPnNlbGVjdF90eXBlX3RlbXBvcmFyeSB8fCBhdHRyLT5hc3NvY2lhdGVfdmFyOwpA QCAtNzkwLDcgKzgwMyw3IEBAIGdmY19idWlsZF9jbGFzc19zeW1ib2wgKGdmY190eXBlc3Bl YyAqdHMsIHN5bWJvbF9hdHRyaWJ1dGUgKmF0dHIsCiAgICAgfQogCiAgIGZjbGFzcy0+YXR0 ci5pc19jbGFzcyA9IDE7Ci0gIHRzLT51LmRlcml2ZWQgPSBmY2xhc3M7CisgIG9yaWdfdHMt PnUuZGVyaXZlZCA9IGZjbGFzczsKICAgYXR0ci0+YWxsb2NhdGFibGUgPSBhdHRyLT5wb2lu dGVyID0gYXR0ci0+ZGltZW5zaW9uID0gYXR0ci0+Y29kaW1lbnNpb24gPSAwOwogICAoKmFz KSA9IE5VTEw7CiAgIGZyZWUgKG5hbWUpOwpAQCAtMjM0NCw2ICsyMzU3LDcgQEAgZ2ZjX2Zp bmRfZGVyaXZlZF92dGFiIChnZmNfc3ltYm9sICpkZXJpdmVkKQogCSAgdnRhYi0+YXR0ci52 dGFiID0gMTsKIAkgIHZ0YWItPmF0dHIuYWNjZXNzID0gQUNDRVNTX1BVQkxJQzsKIAkgIGdm Y19zZXRfc3ltX3JlZmVyZW5jZWQgKHZ0YWIpOworCSAgZnJlZSAobmFtZSk7CiAJICBuYW1l ID0geGFzcHJpbnRmICgiX192dHlwZV8lcyIsIHRuYW1lKTsKIAogCSAgZ2ZjX2ZpbmRfc3lt Ym9sIChuYW1lLCBucywgMCwgJnZ0eXBlKTsKQEAgLTI0NDcsNiArMjQ2MSw3IEBAIGdmY19m aW5kX2Rlcml2ZWRfdnRhYiAoZ2ZjX3N5bWJvbCAqZGVyaXZlZCkKIAkgICAgICBlbHNlCiAJ CXsKIAkJICAvKiBDb25zdHJ1Y3QgZGVmYXVsdCBpbml0aWFsaXphdGlvbiB2YXJpYWJsZS4g ICovCisJCSAgZnJlZSAobmFtZSk7CiAJCSAgbmFtZSA9IHhhc3ByaW50ZiAoIl9fZGVmX2lu aXRfJXMiLCB0bmFtZSk7CiAJCSAgZ2ZjX2dldF9zeW1ib2wgKG5hbWUsIG5zLCAmZGVmX2lu aXQpOwogCQkgIGRlZl9pbml0LT5hdHRyLnRhcmdldCA9IDE7CkBAIC0yNDgwLDYgKzI0OTUs NyBAQCBnZmNfZmluZF9kZXJpdmVkX3Z0YWIgKGdmY19zeW1ib2wgKmRlcml2ZWQpCiAJCSAg bnMtPmNvbnRhaW5lZCA9IHN1Yl9uczsKIAkJICBzdWJfbnMtPnJlc29sdmVkID0gMTsKIAkJ ICAvKiBTZXQgdXAgcHJvY2VkdXJlIHN5bWJvbC4gICovCisJCSAgZnJlZSAobmFtZSk7CiAJ CSAgbmFtZSA9IHhhc3ByaW50ZiAoIl9fY29weV8lcyIsIHRuYW1lKTsKIAkJICBnZmNfZ2V0 X3N5bWJvbCAobmFtZSwgc3ViX25zLCAmY29weSk7CiAJCSAgc3ViX25zLT5wcm9jX25hbWUg PSBjb3B5OwpAQCAtMjU1OCw2ICsyNTc0LDcgQEAgZ2ZjX2ZpbmRfZGVyaXZlZF92dGFiIChn ZmNfc3ltYm9sICpkZXJpdmVkKQogCQkgIG5zLT5jb250YWluZWQgPSBzdWJfbnM7CiAJCSAg c3ViX25zLT5yZXNvbHZlZCA9IDE7CiAJCSAgLyogU2V0IHVwIHByb2NlZHVyZSBzeW1ib2wu ICAqLworCQkgIGZyZWUgKG5hbWUpOwogCQkgIG5hbWUgPSB4YXNwcmludGYgKCJfX2RlYWxs b2NhdGVfJXMiLCB0bmFtZSk7CiAJCSAgZ2ZjX2dldF9zeW1ib2wgKG5hbWUsIHN1Yl9ucywg JmRlYWxsb2MpOwogCQkgIHN1Yl9ucy0+cHJvY19uYW1lID0gZGVhbGxvYzsKQEAgLTI3MjMs NiArMjc0MCw3IEBAIGZpbmRfaW50cmluc2ljX3Z0YWIgKGdmY190eXBlc3BlYyAqdHMpCiAJ ICB2dGFiLT5hdHRyLnZ0YWIgPSAxOwogCSAgdnRhYi0+YXR0ci5hY2Nlc3MgPSBBQ0NFU1Nf UFVCTElDOwogCSAgZ2ZjX3NldF9zeW1fcmVmZXJlbmNlZCAodnRhYik7CisJICBmcmVlIChu YW1lKTsKIAkgIG5hbWUgPSB4YXNwcmludGYgKCJfX3Z0eXBlXyVzIiwgdG5hbWUpOwogCiAJ ICBnZmNfZmluZF9zeW1ib2wgKG5hbWUsIG5zLCAwLCAmdnR5cGUpOwpAQCAtMjgwMSw2ICsy ODE5LDcgQEAgZmluZF9pbnRyaW5zaWNfdnRhYiAoZ2ZjX3R5cGVzcGVjICp0cykKIAkgICAg ICBjLT50YiA9IFhDTkVXIChnZmNfdHlwZWJvdW5kX3Byb2MpOwogCSAgICAgIGMtPnRiLT5w cGMgPSAxOwogCisJICAgICAgZnJlZSAobmFtZSk7CiAJICAgICAgaWYgKHRzLT50eXBlICE9 IEJUX0NIQVJBQ1RFUikKIAkJbmFtZSA9IHhhc3ByaW50ZiAoIl9fY29weV8lcyIsIHRuYW1l KTsKIAkgICAgICBlbHNlCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9kZWNsLmNjIGIvZ2Nj L2ZvcnRyYW4vZGVjbC5jYwppbmRleCBlZWMwMzE0Y2Y0Yy4uYzhmMGJiODNjMmMgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL2RlY2wuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vZGVjbC5jYwpA QCAtODc0MCw0NSArODc0MCwyMyBAQCBhdHRyX2RlY2wxICh2b2lkKQogCX0KICAgICB9CiAK LSAgLyogVXBkYXRlIHN5bWJvbCB0YWJsZS4gIERJTUVOU0lPTiBhdHRyaWJ1dGUgaXMgc2V0 IGluCi0gICAgIGdmY19zZXRfYXJyYXlfc3BlYygpLiAgRm9yIENMQVNTIHZhcmlhYmxlcywg dGhpcyBtdXN0IGJlIGFwcGxpZWQKLSAgICAgdG8gdGhlIGZpcnN0IGNvbXBvbmVudCwgb3Ig J19kYXRhJyBmaWVsZC4gICovCiAgIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MKICAg ICAgICYmIHN5bS0+dHMudS5kZXJpdmVkCiAgICAgICAmJiBzeW0tPnRzLnUuZGVyaXZlZC0+ YXR0ci5pc19jbGFzcykKICAgICB7Ci0gICAgICAvKiBnZmNfc2V0X2FycmF5X3NwZWMgc2V0 cyBzeW0tPmF0dHIgbm90IENMQVNTX0RBVEEoc3ltKS0+YXR0ci4gIENoZWNrCi0JIGZvciBk dXBsaWNhdGUgYXR0cmlidXRlIGhlcmUuICAqLwotICAgICAgaWYgKENMQVNTX0RBVEEoc3lt KS0+YXR0ci5kaW1lbnNpb24gPT0gMSAmJiBhcykKLQl7Ci0JICBnZmNfZXJyb3IgKCJEdXBs aWNhdGUgRElNRU5TSU9OIGF0dHJpYnV0ZSBhdCAlQyIpOwotCSAgbSA9IE1BVENIX0VSUk9S OwotCSAgZ290byBjbGVhbnVwOwotCX0KLQotICAgICAgaWYgKCFnZmNfY29weV9hdHRyICgm Q0xBU1NfREFUQShzeW0pLT5hdHRyLCAmY3VycmVudF9hdHRyLCAmdmFyX2xvY3VzKSkKLQl7 Ci0JICBtID0gTUFUQ0hfRVJST1I7Ci0JICBnb3RvIGNsZWFudXA7Ci0JfQorICAgICAgc3lt LT5hdHRyLnBvaW50ZXIgPSBDTEFTU19EQVRBKHN5bSktPmF0dHIuY2xhc3NfcG9pbnRlcjsK KyAgICAgIHN5bS0+YXR0ci5hbGxvY2F0YWJsZSA9IENMQVNTX0RBVEEoc3ltKS0+YXR0ci5h bGxvY2F0YWJsZTsKKyAgICAgIHN5bS0+YXR0ci5kaW1lbnNpb24gPSBDTEFTU19EQVRBKHN5 bSktPmF0dHIuZGltZW5zaW9uOworICAgICAgc3ltLT5hdHRyLmNvZGltZW5zaW9uID0gQ0xB U1NfREFUQShzeW0pLT5hdHRyLmNvZGltZW5zaW9uOworICAgICAgaWYgKENMQVNTX0RBVEEg KHN5bSktPmFzKQorCXN5bS0+YXMgPSBnZmNfY29weV9hcnJheV9zcGVjIChDTEFTU19EQVRB IChzeW0pLT5hcyk7CiAgICAgfQotICBlbHNlCi0gICAgewotICAgICAgaWYgKGN1cnJlbnRf YXR0ci5kaW1lbnNpb24gPT0gMCAmJiBjdXJyZW50X2F0dHIuY29kaW1lbnNpb24gPT0gMAot CSAgJiYgIWdmY19jb3B5X2F0dHIgKCZzeW0tPmF0dHIsICZjdXJyZW50X2F0dHIsICZ2YXJf bG9jdXMpKQotCXsKLQkgIG0gPSBNQVRDSF9FUlJPUjsKLQkgIGdvdG8gY2xlYW51cDsKLQl9 Ci0gICAgfQotCi0gIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MKLSAgICAgICYmICFn ZmNfYnVpbGRfY2xhc3Nfc3ltYm9sICgmc3ltLT50cywgJnN5bS0+YXR0ciwgJnN5bS0+YXMp KQorICBpZiAoY3VycmVudF9hdHRyLmRpbWVuc2lvbiA9PSAwICYmIGN1cnJlbnRfYXR0ci5j b2RpbWVuc2lvbiA9PSAwCisgICAgICAmJiAhZ2ZjX2NvcHlfYXR0ciAoJnN5bS0+YXR0ciwg JmN1cnJlbnRfYXR0ciwgJnZhcl9sb2N1cykpCiAgICAgewogICAgICAgbSA9IE1BVENIX0VS Uk9SOwogICAgICAgZ290byBjbGVhbnVwOwogICAgIH0KLQogICBpZiAoIWdmY19zZXRfYXJy YXlfc3BlYyAoc3ltLCBhcywgJnZhcl9sb2N1cykpCiAgICAgewogICAgICAgbSA9IE1BVENI X0VSUk9SOwpAQCAtODgwNyw2ICs4Nzg1LDI0IEBAIGF0dHJfZGVjbDEgKHZvaWQpCiAgICAg ICBnb3RvIGNsZWFudXA7CiAgICAgfQogCisgIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0xB U1MgJiYgc3ltLT50cy51LmRlcml2ZWQtPmF0dHIuaXNfY2xhc3MKKyAgICAgICYmICFhcyAm JiAhY3VycmVudF9hdHRyLnBvaW50ZXIgJiYgIWN1cnJlbnRfYXR0ci5hbGxvY2F0YWJsZQor ICAgICAgJiYgIWN1cnJlbnRfYXR0ci5leHRlcm5hbCkKKyAgICB7CisgICAgICBzeW0tPmF0 dHIucG9pbnRlciA9IDA7CisgICAgICBzeW0tPmF0dHIuYWxsb2NhdGFibGUgPSAwOworICAg ICAgc3ltLT5hdHRyLmRpbWVuc2lvbiA9IDA7CisgICAgICBzeW0tPmF0dHIuY29kaW1lbnNp b24gPSAwOworICAgICAgZ2ZjX2ZyZWVfYXJyYXlfc3BlYyAoc3ltLT5hcyk7CisgICAgICBz eW0tPmFzID0gTlVMTDsKKyAgICB9CisgIGVsc2UgaWYgKHN5bS0+dHMudHlwZSA9PSBCVF9D TEFTUworICAgICAgJiYgIWdmY19idWlsZF9jbGFzc19zeW1ib2wgKCZzeW0tPnRzLCAmc3lt LT5hdHRyLCAmc3ltLT5hcykpCisgICAgeworICAgICAgbSA9IE1BVENIX0VSUk9SOworICAg ICAgZ290byBjbGVhbnVwOworICAgIH0KKwogICBhZGRfaGlkZGVuX3Byb2NwdHJfcmVzdWx0 IChzeW0pOwogCiAgIHJldHVybiBNQVRDSF9ZRVM7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9wcmltYXJ5LmNjIGIvZ2NjL2ZvcnRyYW4vcHJpbWFyeS5jYwppbmRleCAxYmVhMTdkNDRm ZS4uMDBkMzVhNzE3NzAgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3ByaW1hcnkuY2MKKysr IGIvZ2NjL2ZvcnRyYW4vcHJpbWFyeS5jYwpAQCAtMjY0MCw3ICsyNjQwLDYgQEAgZ2ZjX3Zh cmlhYmxlX2F0dHIgKGdmY19leHByICpleHByLCBnZmNfdHlwZXNwZWMgKnRzKQogICAgICAg Y29kaW1lbnNpb24gPSBDTEFTU19EQVRBIChzeW0pLT5hdHRyLmNvZGltZW5zaW9uOwogICAg ICAgcG9pbnRlciA9IENMQVNTX0RBVEEgKHN5bSktPmF0dHIuY2xhc3NfcG9pbnRlcjsKICAg ICAgIGFsbG9jYXRhYmxlID0gQ0xBU1NfREFUQSAoc3ltKS0+YXR0ci5hbGxvY2F0YWJsZTsK LSAgICAgIG9wdGlvbmFsIHw9IENMQVNTX0RBVEEgKHN5bSktPmF0dHIub3B0aW9uYWw7CiAg ICAgfQogICBlbHNlCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vc3ltYm9sLmNj IGIvZ2NjL2ZvcnRyYW4vc3ltYm9sLmNjCmluZGV4IDJjZTBmM2U0ZGY3Li4yMjExNjVkNmRh YyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vc3ltYm9sLmNjCisrKyBiL2djYy9mb3J0cmFu L3N5bWJvbC5jYwpAQCAtMzc2MSw3ICszNzYxLDExIEBAIGZyZWVfb2xkX3N5bWJvbCAoZ2Zj X3N5bWJvbCAqc3ltKQogICBpZiAoc3ltLT5vbGRfc3ltYm9sID09IE5VTEwpCiAgICAgcmV0 dXJuOwogCi0gIGlmIChzeW0tPm9sZF9zeW1ib2wtPmFzICE9IHN5bS0+YXMpCisgIGlmIChz eW0tPm9sZF9zeW1ib2wtPmFzICE9IE5VTEwKKyAgICAgICYmIHN5bS0+b2xkX3N5bWJvbC0+ YXMgIT0gc3ltLT5hcworICAgICAgJiYgIShzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MKKwkg ICAmJiBzeW0tPnRzLnUuZGVyaXZlZC0+YXR0ci5pc19jbGFzcworCSAgICYmIHN5bS0+b2xk X3N5bWJvbC0+YXMgPT0gQ0xBU1NfREFUQSAoc3ltKS0+YXMpKQogICAgIGdmY19mcmVlX2Fy cmF5X3NwZWMgKHN5bS0+b2xkX3N5bWJvbC0+YXMpOwogCiAgIGlmIChzeW0tPm9sZF9zeW1i b2wtPnZhbHVlICE9IHN5bS0+dmFsdWUpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2NsYXNzXzc0LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY2xh c3NfNzQuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzk0 ZWQ5MThmYwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Y2xhc3NfNzQuZjkwCkBAIC0wLDAgKzEsMTUxIEBACishIHsgZGctZG8gY29tcGlsZSB9Cish IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmNvYXJyYXk9c2luZ2xlIiB9CishCishIFBS IGZvcnRyYW4vMTA2ODU2CishCishIENvbnRyaWJ1dGVkIGJ5IEcuIFN0ZWlubWV0eiAKKyEK K3N1YnJvdXRpbmUgZm9vCisgIGludGVyZmFjZQorICAgIHN1YnJvdXRpbmUgYmFyKHgpCisg ICAgICB0eXBlKCopIDo6IHgKKyAgICBlbmQgc3Vicm91dGluZSBiYXIKKyAgZW5kIGludGVy ZmFjZQorICBjbGFzcygqKSA6OiB4LCB5CisgIGFsbG9jYXRhYmxlIDo6IHgKKyAgZGltZW5z aW9uIDo6IHgoOiksIHkoOiw6KQorICBjb2RpbWVuc2lvbiA6OiB4WzpdCisgIHBvaW50ZXIg OjogeQorICB5ID0+IG51bGwoKQorICBpZiAoYWxsb2NhdGVkKHgpKSB0aGVuCisgICAgY2Fs bCBiYXIoeCgyKVsxXSkKKyAgZW5kIGlmCisgIGlmIChhc3NvY2lhdGVkKHkpKSB0aGVuCisg ICAgY2FsbCBiYXIoeSgyLDIpKQorICBlbmQgaWYKK2VuZCBzdWJyb3V0aW5lIGZvbworCisK K3Byb2dyYW0gcAorICBjbGFzcygqKSwgYWxsb2NhdGFibGUgOjogeCwgeQorICB5ID0gJ2Fi YycKKyAgY2FsbCBzMSh4LCB5KQorY29udGFpbnMKKyAgc3Vicm91dGluZSBzMSh4LCB5KQor ICAgIGNsYXNzKCopIDo6IHgsIHkKKyAgZW5kCisgIHN1YnJvdXRpbmUgczIoeCwgeSkKKyAg ICBjbGFzcygqKSwgYWxsb2NhdGFibGUgOjogeCwgeQorICAgIG9wdGlvbmFsIDo6IHgKKyAg ZW5kCitlbmQKKworCitzdWJyb3V0aW5lIHMxICh4KQorICBjbGFzcygqKSAgICA6OiB4Cisg IGFsbG9jYXRhYmxlIDo6IHgKKyAgZGltZW5zaW9uICAgOjogeCg6KQorICBpZiAoYWxsb2Nh dGVkICh4KSkgcHJpbnQgKiwgc2l6ZSAoeCkKK2VuZAorCitzdWJyb3V0aW5lIHMyICh4KQor ICBjbGFzcygqKSAgICA6OiB4CisgIGFsbG9jYXRhYmxlIDo6IHgoOikKKyAgaWYgKGFsbG9j YXRlZCAoeCkpIHByaW50ICosIHNpemUgKHgpCitlbmQKKworc3Vicm91dGluZSBzMyAoeCkK KyAgY2xhc3MoKikgICAgOjogeCg6KQorICBhbGxvY2F0YWJsZSA6OiB4CisgIGlmIChhbGxv Y2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5kCisKK3N1YnJvdXRpbmUgczQgKHgp CisgIGNsYXNzKCopICAgIDo6IHgKKyAgZGltZW5zaW9uICAgOjogeCg6KQorICBhbGxvY2F0 YWJsZSA6OiB4CisgIGlmIChhbGxvY2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5k CisKKworc3Vicm91dGluZSBjMCAoeCkKKyAgY2xhc3MoKikgICAgOjogeAorICBhbGxvY2F0 YWJsZSA6OiB4CisgIGNvZGltZW5zaW9uIDo6IHhbOl0KKyAgZGltZW5zaW9uICAgOjogeCg6 KQorICBpZiAoYWxsb2NhdGVkICh4KSkgcHJpbnQgKiwgc2l6ZSAoeCkKK2VuZAorCitzdWJy b3V0aW5lIGMxICh4KQorICBjbGFzcygqKSAgICA6OiB4KDopCisgIGFsbG9jYXRhYmxlIDo6 IHhbOl0KKyAgaWYgKGFsbG9jYXRlZCAoeCkpIHByaW50ICosIHNpemUgKHgpCitlbmQKKwor c3Vicm91dGluZSBjMiAoeCkKKyAgY2xhc3MoKikgICAgOjogeFs6XQorICBhbGxvY2F0YWJs ZSA6OiB4KDopCisgIGlmIChhbGxvY2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5k CisKK3N1YnJvdXRpbmUgYzMgKHgpCisgIGNsYXNzKCopICAgIDo6IHgoOilbOl0KKyAgYWxs b2NhdGFibGUgOjogeAorICBpZiAoYWxsb2NhdGVkICh4KSkgcHJpbnQgKiwgc2l6ZSAoeCkK K2VuZAorCitzdWJyb3V0aW5lIGM0ICh4KQorICBjbGFzcygqKSAgICA6OiB4CisgIGRpbWVu c2lvbiAgIDo6IHgoOikKKyAgY29kaW1lbnNpb24gOjogeFs6XQorICBhbGxvY2F0YWJsZSA6 OiB4CisgIGlmIChhbGxvY2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5kCisKKwor c3Vicm91dGluZSBwMSAoeCkKKyAgY2xhc3MoKikgICAgOjogeAorICBwb2ludGVyICAgICA6 OiB4CisgIGRpbWVuc2lvbiAgIDo6IHgoOikKKyAgaWYgKGFzc29jaWF0ZWQgKHgpKSBwcmlu dCAqLCBzaXplICh4KQorZW5kCisKK3N1YnJvdXRpbmUgcDIgKHgpCisgIGNsYXNzKCopICAg IDo6IHgKKyAgcG9pbnRlciAgICAgOjogeCg6KQorICBpZiAoYXNzb2NpYXRlZCAoeCkpIHBy aW50ICosIHNpemUgKHgpCitlbmQKKworc3Vicm91dGluZSBwMyAoeCkKKyAgY2xhc3MoKikg ICAgOjogeCg6KQorICBwb2ludGVyICAgICA6OiB4CisgIGlmIChhc3NvY2lhdGVkICh4KSkg cHJpbnQgKiwgc2l6ZSAoeCkKK2VuZAorCitzdWJyb3V0aW5lIHA0ICh4KQorICBjbGFzcygq KSAgICA6OiB4CisgIGRpbWVuc2lvbiAgIDo6IHgoOikKKyAgcG9pbnRlciAgICAgOjogeAor ICBpZiAoYXNzb2NpYXRlZCAoeCkpIHByaW50ICosIHNpemUgKHgpCitlbmQKKworCishIFRl c3RjYXNlIGJ5IE1pa2FlbCBNb3Jpbgorc3Vicm91dGluZSBtbSAoKQorICBwb2ludGVyICAg OjogeQorICBkaW1lbnNpb24gOjogeSg6LDopCisgIGNsYXNzKCopICA6OiB5CisgIGlmIChh c3NvY2lhdGVkICh5KSkgcHJpbnQgKiwgc2l6ZSAoeSkKK2VuZAorCishIFRlc3RjYXNlIGZy b20gcHI1Mzk1MQorc3Vicm91dGluZSBwcjUzOTUxICgpCisgIHR5cGUgdAorICBlbmQgdHlw ZSB0CisgIGNsYXNzKHQpLCBwb2ludGVyIDo6IEMKKyAgVEFSR0VUIDo6IEEKKyAgY2xhc3Mo dCksIGFsbG9jYXRhYmxlIDo6IEEsIEIKKyAgVEFSR0VUIDo6IEIKKyAgQyA9PiBBICEgVmFs aWQKKyAgQyA9PiBCICEgVmFsaWQsIGJ1dCB3YXMgcmVqZWN0ZWQKK2VuZApkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc183NS5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2NsYXNzXzc1LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZWIyOWFkNTFjODUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2NsYXNzXzc1LmY5MApAQCAtMCwwICsxLDI0IEBACishIHsg ZGctZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmNvYXJyYXk9 c2luZ2xlIiB9CishCishIFBSIGZvcnRyYW4vMTA2ODU2CishCishCishCitzdWJyb3V0aW5l IGZvbyh4LHkpCisgIGNsYXNzKCopLCBvcHRpb25hbCA6OiB4LCB5CisgIG9wdGlvbmFsICAg IDo6IHggICAgISB7IGRnLWVycm9yICJEdXBsaWNhdGUgT1BUSU9OQUwgYXR0cmlidXRlIiB9 CisgIHRhcmdldCAgICAgIDo6IHgKKyAgYWxsb2NhdGFibGUgOjogeAorICB0YXJnZXQgICAg ICA6OiB4ICAgICEgeyBkZy1lcnJvciAiRHVwbGljYXRlIFRBUkdFVCBhdHRyaWJ1dGUiIH0K KyAgYWxsb2NhdGFibGUgOjogeCAgICAhIHsgZGctZXJyb3IgIkR1cGxpY2F0ZSBBTExPQ0FU QUJMRSBhdHRyaWJ1dGUiIH0KKyAgcG9pbnRlciAgICAgOjogeQorICBjb250aWd1b3VzICA6 OiB5CisgIHBvaW50ZXIgICAgIDo6IHkgICAgISB7IGRnLWVycm9yICJEdXBsaWNhdGUgUE9J TlRFUiBhdHRyaWJ1dGUiIH0KKyAgY29udGlndW91cyAgOjogeSAgICAhIHsgZGctZXJyb3Ig IkR1cGxpY2F0ZSBDT05USUdVT1VTIGF0dHJpYnV0ZSIgfQorICBjb2RpbWVuc2lvbiA6OiB4 WzpdCisgIGRpbWVuc2lvbiAgIDo6IHgoOiw6KQorICBkaW1lbnNpb24gICA6OiB5KDosOiw6 KQorICBjb2RpbWVuc2lvbiA6OiB4WzpdICEgeyBkZy1lcnJvciAiRHVwbGljYXRlIENPRElN RU5TSU9OIGF0dHJpYnV0ZSIgfQorICBkaW1lbnNpb24gICA6OiB5KDopICEgeyBkZy1lcnJv ciAiRHVwbGljYXRlIERJTUVOU0lPTiBhdHRyaWJ1dGUiIH0KK2VuZApkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9pbnRlcmZhY2VfNDEuZjkwIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9pbnRlcmZhY2VfNDEuZjkwCmluZGV4IGI1ZWE4YWYxODlkLi4y ZmVjMDFlM2NmOSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9pbnRl cmZhY2VfNDEuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvaW50ZXJmYWNl XzQxLmY5MApAQCAtMTQsNiArMTQsNiBAQCBjb250YWlucwogICAgc3Vicm91dGluZSBzCiAg ICAgICB0eXBlKHQpIDo6IHgoMikKICAgICAgIHJlYWwgOjogegotICAgICAgeiA9IGYoeCkg ICAgICEgeyBkZy1lcnJvciAiUmFuayBtaXNtYXRjaCBpbiBhcmd1bWVudCIgfQorICAgICAg eiA9IGYoeCkKICAgIGVuZAogZW5kCi0tIAoyLjM1LjMKCg== --------------SxzE8kS3JW4lMXYRMnW7e8Sy-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id 3BC183858423; Sun, 5 Mar 2023 20:21:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3BC183858423 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=1678047706; i=anlauf@gmx.de; bh=ALERgq9KcP9xWwyOLhn8bx/WWUL0gZxkgKC521s5NK0=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=MXHcfUgWL72e9fOnpqIYFPgVWtTIizxiVnB8o0AyjT+AjY7hYxq/xBaa7/udzgnw6 U13xUxt0FxW9AQ98Ki+rKdJK6+tzF9lM9NKkrhZju2UylRMQhpJLW61e83lT77R4+x oXTUrEnK0ER3I7muh5CdK0CS6J1aMKaCI/4NQJqWIN1cFZup30k2dWK///5uUV+AMt cBbxqw78uNRp3uil7ddTinHc3I4JDfXGxv1n5cSsMP/EcfjQ1Q4YI2o3hCoQr0ccnh NCXg9Tm1QJzkzb0Nlh3jBMF9wUbh8lFimNSn6l5m8UZf7inAh9WcG0JdyFRIdu5dES Zd3wRuQrgKjEQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.251.10.128]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MA7GM-1pkQOR47oI-00BbBs; Sun, 05 Mar 2023 21:21:46 +0100 Content-Type: multipart/mixed; boundary="------------SxzE8kS3JW4lMXYRMnW7e8Sy" Message-ID: Date: Sun, 5 Mar 2023 21:21:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: [PATCH, v3] Fortran: fix CLASS attribute handling [PR106856] To: Mikael Morin , sgk@troutmask.apl.washington.edu, Harald Anlauf via Fortran Cc: gcc-patches , tobias@codesourcery.com Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <5b42f0b7-e217-555d-b1f2-4b623f3ae150@orange.fr> <5f1e8202-303e-5da2-c42b-8eab00a12a97@orange.fr> <48caf060-4349-b077-24da-8bf53ed4b650@gmx.de> <614d6385-49fe-4869-ef4b-8afa175d3693@orange.fr> <871e46b4-af10-c8fc-105c-9aec987e2cac@gmx.de> Content-Language: en-US From: Harald Anlauf In-Reply-To: X-Provags-ID: V03:K1:955g73sf8Uzc/UiMCEjJBqrhJD5mfRBYz2YKE4KOobcLID7dhjp MqQH7mbFE7D+rorYzBvmSlY5vZNOldzFX0Q6tFIH4F0oziYeroxFOsGIIyiCn61UviIeR6D E3BHd2W3AdDyHYPzc3bTiloHOz60fYiF9jNAhhNglt3bL4j7kgt5rmP37elTyLh6prINyXf 91ORLNe3aJgNeOOfc2RwQ== UI-OutboundReport: notjunk:1;M01:P0:z2SLr2wPSYw=;RgOncxsk/axyW0oVrg/5n+tuc1s p/2ggmxjNUDkSV66ZZj8nfxrJBtOiLi7scZpxeN42YQ8UJnwhyIhCaH8t6RrYX5nDtZk4JjUb 5mKgbck8cPlE1+qMS5PJO9aPrUzZnerar9UJ/33Vrf2iNKhDFVWp5FUFZYkV8M29RPtEZM52W 4DqN+okoA8DBdn8mtg9pHstHfOe/OsZTyXTghX/+e/dCdgoddsqCD4dH/zdfmIaaHDAZ5KhK0 iO4665f6NLBnMys8oz7BDuT+NaqKfwKekVEc/E7MC88S9ZuCG4HktBiPiO8gRL23LMT8m5XDd xIQycBaNd58KtuKY8fLoRvQVTHB/6ljSGCpLZVjZTHYX7eLJs3jZTr10nexkszBn++k9NBkS/ 3qkSCj2fPNaB7PM0GxHeW6PkYT9Ej+NwxttU8uEMMY+fQq3t+wJazh2ez3uaPkPuZV81e/NZD 9HAfEFeeJLOcqS4qQrFXDxF/gg8PPNVNtOAM+Ii3OkMLoXU8jWMrvMV3d64YfqtbnK7y6JcIU /ASJsuEn0lOmBicHNzj7j08stcJsr1Qz018rVCVgCT/jdDnwWeY9kdEAlWG/ryRQOi8sxXbQL r0CpNXA/hP7gI8oQFtMkrXqioowjMRetac0JJdMQcn8nCdY41ulJ0+5T4wcOUj7kLvduYtzW6 3Bc76Q0TBhZsYw8MBgfLXZCUbEoXBDUZ8Xol+MU9Hw4NjSBG7wIMA99T3Iq0NLdVrerC0N+1/ rR8znobIVmsmxIlmgk5NJ8gss5Ue3yF+yZ3eHEw1ddIURcCeCc/6LtLoFba/QIwIoNgGVnkfx dyombhDV+vJjRuikrM7x3apuDGfR++qKzSFNMri7eXV0hME/eFSr1U8ryX6a5vbYKEaNok/hu yOE7yZKReJFxcuwHsKlb0p5Fqi8aEMnBKrpIblsCYpMKJUyJecZXeU/6XsgAdNnmxP2vj+3ec 4pdBQcHm2vh2A1H/GUylkRFEY/Y= 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,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: Message-ID: <20230305202141.AWFdzi0fhIIGnlGp9HyEMIK0HJ4su2cAhhyVvPEQySg@z> This is a multi-part message in MIME format. --------------SxzE8kS3JW4lMXYRMnW7e8Sy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Mikael, Am 04.03.23 um 23:29 schrieb Mikael Morin: > Le 04/03/2023 =C3=A0 22:20, Harald Anlauf a =C3=A9crit=C2=A0: >> Hi Mikael, >> >> Am 04.03.23 um 18:09 schrieb Mikael Morin: >>> There was a comment about the old_symbol thing at the end of my previo= us >>> message: >>> https://gcc.gnu.org/pipermail/gcc-patches/2023-March/613354.html >> >> I think Tobias might be the better person to answer this. >> But when playing with variations of that else-branch, >> I always hit an issue with class_74.f90, where the class >> variables are not dummy arguments but local variables. >> >> E.g. take the following reduced testcase: >> >> subroutine foo >> =C2=A0=C2=A0 class(*)=C2=A0 :: y >> =C2=A0=C2=A0 dimension :: y(:,:) >> =C2=A0=C2=A0 pointer=C2=A0=C2=A0 :: y >> end subroutine foo >> >> So when we see the dimension but haven't seen the >> pointer (or allocatable) declaration, we appear to >> generate an error with bad consequences (ICE). >> >> If this is a resolution issue, maybe it can be fixed >> differently, but likely needs digging deeper.=C2=A0 With >> the patch as-is at least I do not see a memory leak >> in that context. >> > One of my suggestions was to fix it as attached. > It is probably more clear with an actual patch to look at. > It seems to work on your example and class_74 as well. This fix is great. I've included it in the revised patch. > It seems to also fix some valgrind errors on this example: > =C2=A0=C2=A0 subroutine foo > =C2=A0=C2=A0=C2=A0=C2=A0 pointer=C2=A0=C2=A0 :: y > =C2=A0=C2=A0=C2=A0=C2=A0 dimension :: y(:,:) > =C2=A0=C2=A0=C2=A0=C2=A0 class(*)=C2=A0 :: y > =C2=A0=C2=A0 end subroutine foo > I'm fine with that fix if it works for you. I've added this variant to class_74.f90, so it won't break without noticing. > I suggest waiting for next stage 1, but it's your call, you have the > green light from Steve anyway. I've chosen to push patch v3 (attached) after a further round of regtesting as r13-6497-g6aa1f40a326374 . > Thanks for your work. Many thanks for your very helpful review! Harald --------------SxzE8kS3JW4lMXYRMnW7e8Sy Content-Type: text/x-patch; charset=UTF-8; name="pr106856-v3.diff" Content-Disposition: attachment; filename="pr106856-v3.diff" Content-Transfer-Encoding: base64 RnJvbSA2YWExZjQwYTMyNjM3NDFkOTY0ZWY0NzE2ZTg1YTBkZjVjZWM4M2I2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUaHUsIDIgTWFyIDIwMjMgMjI6Mzc6MTQgKzAxMDAKU3ViamVjdDogW1BBVENIXSBG b3J0cmFuOiBmaXggQ0xBU1MgYXR0cmlidXRlIGhhbmRsaW5nIFtQUjEwNjg1Nl0KCmdjYy9m b3J0cmFuL0NoYW5nZUxvZzoKCglQUiBmb3J0cmFuLzEwNjg1NgoJKiBjbGFzcy5jYyAoZ2Zj X2J1aWxkX2NsYXNzX3N5bWJvbCk6IEhhbmRsZSB1cGRhdGUgb2YgYXR0cmlidXRlcyBvZgoJ ZXhpc3RpbmcgY2xhc3MgY29udGFpbmVyLgoJKGdmY19maW5kX2Rlcml2ZWRfdnRhYik6IEZp eCBzZXZlcmFsIG1lbW9yeSBsZWFrcy4KCShmaW5kX2ludHJpbnNpY192dGFiKTogRGl0dG8u CgkqIGRlY2wuY2MgKGF0dHJfZGVjbDEpOiBNYW5hZ2UgdXBkYXRlIG9mIHN5bWJvbCBhdHRy aWJ1dGVzIGZyb20KCUNMQVNTIGF0dHJpYnV0ZXMuCgkqIHByaW1hcnkuY2MgKGdmY192YXJp YWJsZV9hdHRyKTogT1BUSU9OQUwgc2hhbGwgbm90IGJlIHRha2VuIG9yCgl1cGRhdGVkIGZy b20gdGhlIGNsYXNzIGNvbnRhaW5lci4KCSogc3ltYm9sLmNjIChmcmVlX29sZF9zeW1ib2wp OiBBZGp1c3QgbWFuYWdlbWVudCBvZiBzeW1ib2wgdmVyc2lvbnMKCXRvIG5vdCBwcmVtYXR1 cmVseSBmcmVlIGFycmF5IHNwZWNzIHdoaWxlIHdvcmtpbmcgb24gdGhlIGRlY2xhdGlvbgoJ b2YgQ0xBU1MgdmFyaWFibGVzLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJUFIgZm9y dHJhbi8xMDY4NTYKCSogZ2ZvcnRyYW4uZGcvaW50ZXJmYWNlXzQxLmY5MDogUmVtb3ZlIGRn LXBhdHRlcm4gZnJvbSB2YWxpZCB0ZXN0Y2FzZS4KCSogZ2ZvcnRyYW4uZGcvY2xhc3NfNzQu ZjkwOiBOZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcvY2xhc3NfNzUuZjkwOiBOZXcgdGVzdC4K CkNvLWF1dGhvcmVkLWJ5OiBUb2JpYXMgQnVybnVzICA8dG9iaWFzQGNvZGVzb3VyY2VyeS5j b20+Ci0tLQogZ2NjL2ZvcnRyYW4vY2xhc3MuY2MgICAgICAgICAgICAgICAgICAgICAgIHwg IDI1ICsrKy0KIGdjYy9mb3J0cmFuL2RlY2wuY2MgICAgICAgICAgICAgICAgICAgICAgICB8 ICA1NiArKysrLS0tLQogZ2NjL2ZvcnRyYW4vcHJpbWFyeS5jYyAgICAgICAgICAgICAgICAg ICAgIHwgICAxIC0KIGdjYy9mb3J0cmFuL3N5bWJvbC5jYyAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArLQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc183NC5mOTAgICAg IHwgMTUxICsrKysrKysrKysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9jbGFzc183NS5mOTAgICAgIHwgIDI0ICsrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvaW50ZXJmYWNlXzQxLmY5MCB8ICAgMiArLQogNyBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5z ZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc183NC5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NsYXNzXzc1LmY5MAoKZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL2NsYXNzLmNjIGIvZ2NjL2ZvcnRyYW4vY2xhc3MuY2MKaW5kZXggYWU2NTNl NzQ0MzcuLjUyMjM1YWI4M2UzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9jbGFzcy5jYwor KysgYi9nY2MvZm9ydHJhbi9jbGFzcy5jYwpAQCAtNjM4LDYgKzYzOCw3IEBAIGdmY19idWls ZF9jbGFzc19zeW1ib2wgKGdmY190eXBlc3BlYyAqdHMsIHN5bWJvbF9hdHRyaWJ1dGUgKmF0 dHIsCiB7CiAgIGNoYXIgdG5hbWVbR0ZDX01BWF9TWU1CT0xfTEVOKzFdOwogICBjaGFyICpu YW1lOworICBnZmNfdHlwZXNwZWMgKm9yaWdfdHMgPSB0czsKICAgZ2ZjX3N5bWJvbCAqZmNs YXNzOwogICBnZmNfc3ltYm9sICp2dGFiOwogICBnZmNfY29tcG9uZW50ICpjOwpAQCAtNjQ2 LDkgKzY0NywyMSBAQCBnZmNfYnVpbGRfY2xhc3Nfc3ltYm9sIChnZmNfdHlwZXNwZWMgKnRz LCBzeW1ib2xfYXR0cmlidXRlICphdHRyLAogCiAgIGdjY19hc3NlcnQgKGFzKTsKIAotICBp ZiAoYXR0ci0+Y2xhc3Nfb2spCi0gICAgLyogQ2xhc3MgY29udGFpbmVyIGhhcyBhbHJlYWR5 IGJlZW4gYnVpbHQuICAqLworICAvKiBDbGFzcyBjb250YWluZXIgaGFzIGFscmVhZHkgYmVl biBidWlsdCB3aXRoIHNhbWUgbmFtZS4gICovCisgIGlmIChhdHRyLT5jbGFzc19vaworICAg ICAgJiYgdHMtPnUuZGVyaXZlZC0+Y29tcG9uZW50cy0+YXR0ci5kaW1lbnNpb24gPj0gYXR0 ci0+ZGltZW5zaW9uCisgICAgICAmJiB0cy0+dS5kZXJpdmVkLT5jb21wb25lbnRzLT5hdHRy LmNvZGltZW5zaW9uID49IGF0dHItPmNvZGltZW5zaW9uCisgICAgICAmJiB0cy0+dS5kZXJp dmVkLT5jb21wb25lbnRzLT5hdHRyLmNsYXNzX3BvaW50ZXIgPj0gYXR0ci0+cG9pbnRlcgor ICAgICAgJiYgdHMtPnUuZGVyaXZlZC0+Y29tcG9uZW50cy0+YXR0ci5hbGxvY2F0YWJsZSA+ PSBhdHRyLT5hbGxvY2F0YWJsZSkKICAgICByZXR1cm4gdHJ1ZTsKKyAgaWYgKGF0dHItPmNs YXNzX29rKQorICAgIHsKKyAgICAgIGF0dHItPmRpbWVuc2lvbiB8PSB0cy0+dS5kZXJpdmVk LT5jb21wb25lbnRzLT5hdHRyLmRpbWVuc2lvbjsKKyAgICAgIGF0dHItPmNvZGltZW5zaW9u IHw9IHRzLT51LmRlcml2ZWQtPmNvbXBvbmVudHMtPmF0dHIuY29kaW1lbnNpb247CisgICAg ICBhdHRyLT5wb2ludGVyIHw9IHRzLT51LmRlcml2ZWQtPmNvbXBvbmVudHMtPmF0dHIuY2xh c3NfcG9pbnRlcjsKKyAgICAgIGF0dHItPmFsbG9jYXRhYmxlIHw9IHRzLT51LmRlcml2ZWQt PmNvbXBvbmVudHMtPmF0dHIuYWxsb2NhdGFibGU7CisgICAgICB0cyA9ICZ0cy0+dS5kZXJp dmVkLT5jb21wb25lbnRzLT50czsKKyAgICB9CiAKICAgYXR0ci0+Y2xhc3Nfb2sgPSBhdHRy LT5kdW1teSB8fCBhdHRyLT5wb2ludGVyIHx8IGF0dHItPmFsbG9jYXRhYmxlCiAJCSAgIHx8 IGF0dHItPnNlbGVjdF90eXBlX3RlbXBvcmFyeSB8fCBhdHRyLT5hc3NvY2lhdGVfdmFyOwpA QCAtNzkwLDcgKzgwMyw3IEBAIGdmY19idWlsZF9jbGFzc19zeW1ib2wgKGdmY190eXBlc3Bl YyAqdHMsIHN5bWJvbF9hdHRyaWJ1dGUgKmF0dHIsCiAgICAgfQogCiAgIGZjbGFzcy0+YXR0 ci5pc19jbGFzcyA9IDE7Ci0gIHRzLT51LmRlcml2ZWQgPSBmY2xhc3M7CisgIG9yaWdfdHMt PnUuZGVyaXZlZCA9IGZjbGFzczsKICAgYXR0ci0+YWxsb2NhdGFibGUgPSBhdHRyLT5wb2lu dGVyID0gYXR0ci0+ZGltZW5zaW9uID0gYXR0ci0+Y29kaW1lbnNpb24gPSAwOwogICAoKmFz KSA9IE5VTEw7CiAgIGZyZWUgKG5hbWUpOwpAQCAtMjM0NCw2ICsyMzU3LDcgQEAgZ2ZjX2Zp bmRfZGVyaXZlZF92dGFiIChnZmNfc3ltYm9sICpkZXJpdmVkKQogCSAgdnRhYi0+YXR0ci52 dGFiID0gMTsKIAkgIHZ0YWItPmF0dHIuYWNjZXNzID0gQUNDRVNTX1BVQkxJQzsKIAkgIGdm Y19zZXRfc3ltX3JlZmVyZW5jZWQgKHZ0YWIpOworCSAgZnJlZSAobmFtZSk7CiAJICBuYW1l ID0geGFzcHJpbnRmICgiX192dHlwZV8lcyIsIHRuYW1lKTsKIAogCSAgZ2ZjX2ZpbmRfc3lt Ym9sIChuYW1lLCBucywgMCwgJnZ0eXBlKTsKQEAgLTI0NDcsNiArMjQ2MSw3IEBAIGdmY19m aW5kX2Rlcml2ZWRfdnRhYiAoZ2ZjX3N5bWJvbCAqZGVyaXZlZCkKIAkgICAgICBlbHNlCiAJ CXsKIAkJICAvKiBDb25zdHJ1Y3QgZGVmYXVsdCBpbml0aWFsaXphdGlvbiB2YXJpYWJsZS4g ICovCisJCSAgZnJlZSAobmFtZSk7CiAJCSAgbmFtZSA9IHhhc3ByaW50ZiAoIl9fZGVmX2lu aXRfJXMiLCB0bmFtZSk7CiAJCSAgZ2ZjX2dldF9zeW1ib2wgKG5hbWUsIG5zLCAmZGVmX2lu aXQpOwogCQkgIGRlZl9pbml0LT5hdHRyLnRhcmdldCA9IDE7CkBAIC0yNDgwLDYgKzI0OTUs NyBAQCBnZmNfZmluZF9kZXJpdmVkX3Z0YWIgKGdmY19zeW1ib2wgKmRlcml2ZWQpCiAJCSAg bnMtPmNvbnRhaW5lZCA9IHN1Yl9uczsKIAkJICBzdWJfbnMtPnJlc29sdmVkID0gMTsKIAkJ ICAvKiBTZXQgdXAgcHJvY2VkdXJlIHN5bWJvbC4gICovCisJCSAgZnJlZSAobmFtZSk7CiAJ CSAgbmFtZSA9IHhhc3ByaW50ZiAoIl9fY29weV8lcyIsIHRuYW1lKTsKIAkJICBnZmNfZ2V0 X3N5bWJvbCAobmFtZSwgc3ViX25zLCAmY29weSk7CiAJCSAgc3ViX25zLT5wcm9jX25hbWUg PSBjb3B5OwpAQCAtMjU1OCw2ICsyNTc0LDcgQEAgZ2ZjX2ZpbmRfZGVyaXZlZF92dGFiIChn ZmNfc3ltYm9sICpkZXJpdmVkKQogCQkgIG5zLT5jb250YWluZWQgPSBzdWJfbnM7CiAJCSAg c3ViX25zLT5yZXNvbHZlZCA9IDE7CiAJCSAgLyogU2V0IHVwIHByb2NlZHVyZSBzeW1ib2wu ICAqLworCQkgIGZyZWUgKG5hbWUpOwogCQkgIG5hbWUgPSB4YXNwcmludGYgKCJfX2RlYWxs b2NhdGVfJXMiLCB0bmFtZSk7CiAJCSAgZ2ZjX2dldF9zeW1ib2wgKG5hbWUsIHN1Yl9ucywg JmRlYWxsb2MpOwogCQkgIHN1Yl9ucy0+cHJvY19uYW1lID0gZGVhbGxvYzsKQEAgLTI3MjMs NiArMjc0MCw3IEBAIGZpbmRfaW50cmluc2ljX3Z0YWIgKGdmY190eXBlc3BlYyAqdHMpCiAJ ICB2dGFiLT5hdHRyLnZ0YWIgPSAxOwogCSAgdnRhYi0+YXR0ci5hY2Nlc3MgPSBBQ0NFU1Nf UFVCTElDOwogCSAgZ2ZjX3NldF9zeW1fcmVmZXJlbmNlZCAodnRhYik7CisJICBmcmVlIChu YW1lKTsKIAkgIG5hbWUgPSB4YXNwcmludGYgKCJfX3Z0eXBlXyVzIiwgdG5hbWUpOwogCiAJ ICBnZmNfZmluZF9zeW1ib2wgKG5hbWUsIG5zLCAwLCAmdnR5cGUpOwpAQCAtMjgwMSw2ICsy ODE5LDcgQEAgZmluZF9pbnRyaW5zaWNfdnRhYiAoZ2ZjX3R5cGVzcGVjICp0cykKIAkgICAg ICBjLT50YiA9IFhDTkVXIChnZmNfdHlwZWJvdW5kX3Byb2MpOwogCSAgICAgIGMtPnRiLT5w cGMgPSAxOwogCisJICAgICAgZnJlZSAobmFtZSk7CiAJICAgICAgaWYgKHRzLT50eXBlICE9 IEJUX0NIQVJBQ1RFUikKIAkJbmFtZSA9IHhhc3ByaW50ZiAoIl9fY29weV8lcyIsIHRuYW1l KTsKIAkgICAgICBlbHNlCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9kZWNsLmNjIGIvZ2Nj L2ZvcnRyYW4vZGVjbC5jYwppbmRleCBlZWMwMzE0Y2Y0Yy4uYzhmMGJiODNjMmMgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL2RlY2wuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vZGVjbC5jYwpA QCAtODc0MCw0NSArODc0MCwyMyBAQCBhdHRyX2RlY2wxICh2b2lkKQogCX0KICAgICB9CiAK LSAgLyogVXBkYXRlIHN5bWJvbCB0YWJsZS4gIERJTUVOU0lPTiBhdHRyaWJ1dGUgaXMgc2V0 IGluCi0gICAgIGdmY19zZXRfYXJyYXlfc3BlYygpLiAgRm9yIENMQVNTIHZhcmlhYmxlcywg dGhpcyBtdXN0IGJlIGFwcGxpZWQKLSAgICAgdG8gdGhlIGZpcnN0IGNvbXBvbmVudCwgb3Ig J19kYXRhJyBmaWVsZC4gICovCiAgIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MKICAg ICAgICYmIHN5bS0+dHMudS5kZXJpdmVkCiAgICAgICAmJiBzeW0tPnRzLnUuZGVyaXZlZC0+ YXR0ci5pc19jbGFzcykKICAgICB7Ci0gICAgICAvKiBnZmNfc2V0X2FycmF5X3NwZWMgc2V0 cyBzeW0tPmF0dHIgbm90IENMQVNTX0RBVEEoc3ltKS0+YXR0ci4gIENoZWNrCi0JIGZvciBk dXBsaWNhdGUgYXR0cmlidXRlIGhlcmUuICAqLwotICAgICAgaWYgKENMQVNTX0RBVEEoc3lt KS0+YXR0ci5kaW1lbnNpb24gPT0gMSAmJiBhcykKLQl7Ci0JICBnZmNfZXJyb3IgKCJEdXBs aWNhdGUgRElNRU5TSU9OIGF0dHJpYnV0ZSBhdCAlQyIpOwotCSAgbSA9IE1BVENIX0VSUk9S OwotCSAgZ290byBjbGVhbnVwOwotCX0KLQotICAgICAgaWYgKCFnZmNfY29weV9hdHRyICgm Q0xBU1NfREFUQShzeW0pLT5hdHRyLCAmY3VycmVudF9hdHRyLCAmdmFyX2xvY3VzKSkKLQl7 Ci0JICBtID0gTUFUQ0hfRVJST1I7Ci0JICBnb3RvIGNsZWFudXA7Ci0JfQorICAgICAgc3lt LT5hdHRyLnBvaW50ZXIgPSBDTEFTU19EQVRBKHN5bSktPmF0dHIuY2xhc3NfcG9pbnRlcjsK KyAgICAgIHN5bS0+YXR0ci5hbGxvY2F0YWJsZSA9IENMQVNTX0RBVEEoc3ltKS0+YXR0ci5h bGxvY2F0YWJsZTsKKyAgICAgIHN5bS0+YXR0ci5kaW1lbnNpb24gPSBDTEFTU19EQVRBKHN5 bSktPmF0dHIuZGltZW5zaW9uOworICAgICAgc3ltLT5hdHRyLmNvZGltZW5zaW9uID0gQ0xB U1NfREFUQShzeW0pLT5hdHRyLmNvZGltZW5zaW9uOworICAgICAgaWYgKENMQVNTX0RBVEEg KHN5bSktPmFzKQorCXN5bS0+YXMgPSBnZmNfY29weV9hcnJheV9zcGVjIChDTEFTU19EQVRB IChzeW0pLT5hcyk7CiAgICAgfQotICBlbHNlCi0gICAgewotICAgICAgaWYgKGN1cnJlbnRf YXR0ci5kaW1lbnNpb24gPT0gMCAmJiBjdXJyZW50X2F0dHIuY29kaW1lbnNpb24gPT0gMAot CSAgJiYgIWdmY19jb3B5X2F0dHIgKCZzeW0tPmF0dHIsICZjdXJyZW50X2F0dHIsICZ2YXJf bG9jdXMpKQotCXsKLQkgIG0gPSBNQVRDSF9FUlJPUjsKLQkgIGdvdG8gY2xlYW51cDsKLQl9 Ci0gICAgfQotCi0gIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MKLSAgICAgICYmICFn ZmNfYnVpbGRfY2xhc3Nfc3ltYm9sICgmc3ltLT50cywgJnN5bS0+YXR0ciwgJnN5bS0+YXMp KQorICBpZiAoY3VycmVudF9hdHRyLmRpbWVuc2lvbiA9PSAwICYmIGN1cnJlbnRfYXR0ci5j b2RpbWVuc2lvbiA9PSAwCisgICAgICAmJiAhZ2ZjX2NvcHlfYXR0ciAoJnN5bS0+YXR0ciwg JmN1cnJlbnRfYXR0ciwgJnZhcl9sb2N1cykpCiAgICAgewogICAgICAgbSA9IE1BVENIX0VS Uk9SOwogICAgICAgZ290byBjbGVhbnVwOwogICAgIH0KLQogICBpZiAoIWdmY19zZXRfYXJy YXlfc3BlYyAoc3ltLCBhcywgJnZhcl9sb2N1cykpCiAgICAgewogICAgICAgbSA9IE1BVENI X0VSUk9SOwpAQCAtODgwNyw2ICs4Nzg1LDI0IEBAIGF0dHJfZGVjbDEgKHZvaWQpCiAgICAg ICBnb3RvIGNsZWFudXA7CiAgICAgfQogCisgIGlmIChzeW0tPnRzLnR5cGUgPT0gQlRfQ0xB U1MgJiYgc3ltLT50cy51LmRlcml2ZWQtPmF0dHIuaXNfY2xhc3MKKyAgICAgICYmICFhcyAm JiAhY3VycmVudF9hdHRyLnBvaW50ZXIgJiYgIWN1cnJlbnRfYXR0ci5hbGxvY2F0YWJsZQor ICAgICAgJiYgIWN1cnJlbnRfYXR0ci5leHRlcm5hbCkKKyAgICB7CisgICAgICBzeW0tPmF0 dHIucG9pbnRlciA9IDA7CisgICAgICBzeW0tPmF0dHIuYWxsb2NhdGFibGUgPSAwOworICAg ICAgc3ltLT5hdHRyLmRpbWVuc2lvbiA9IDA7CisgICAgICBzeW0tPmF0dHIuY29kaW1lbnNp b24gPSAwOworICAgICAgZ2ZjX2ZyZWVfYXJyYXlfc3BlYyAoc3ltLT5hcyk7CisgICAgICBz eW0tPmFzID0gTlVMTDsKKyAgICB9CisgIGVsc2UgaWYgKHN5bS0+dHMudHlwZSA9PSBCVF9D TEFTUworICAgICAgJiYgIWdmY19idWlsZF9jbGFzc19zeW1ib2wgKCZzeW0tPnRzLCAmc3lt LT5hdHRyLCAmc3ltLT5hcykpCisgICAgeworICAgICAgbSA9IE1BVENIX0VSUk9SOworICAg ICAgZ290byBjbGVhbnVwOworICAgIH0KKwogICBhZGRfaGlkZGVuX3Byb2NwdHJfcmVzdWx0 IChzeW0pOwogCiAgIHJldHVybiBNQVRDSF9ZRVM7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9wcmltYXJ5LmNjIGIvZ2NjL2ZvcnRyYW4vcHJpbWFyeS5jYwppbmRleCAxYmVhMTdkNDRm ZS4uMDBkMzVhNzE3NzAgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3ByaW1hcnkuY2MKKysr IGIvZ2NjL2ZvcnRyYW4vcHJpbWFyeS5jYwpAQCAtMjY0MCw3ICsyNjQwLDYgQEAgZ2ZjX3Zh cmlhYmxlX2F0dHIgKGdmY19leHByICpleHByLCBnZmNfdHlwZXNwZWMgKnRzKQogICAgICAg Y29kaW1lbnNpb24gPSBDTEFTU19EQVRBIChzeW0pLT5hdHRyLmNvZGltZW5zaW9uOwogICAg ICAgcG9pbnRlciA9IENMQVNTX0RBVEEgKHN5bSktPmF0dHIuY2xhc3NfcG9pbnRlcjsKICAg ICAgIGFsbG9jYXRhYmxlID0gQ0xBU1NfREFUQSAoc3ltKS0+YXR0ci5hbGxvY2F0YWJsZTsK LSAgICAgIG9wdGlvbmFsIHw9IENMQVNTX0RBVEEgKHN5bSktPmF0dHIub3B0aW9uYWw7CiAg ICAgfQogICBlbHNlCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vc3ltYm9sLmNj IGIvZ2NjL2ZvcnRyYW4vc3ltYm9sLmNjCmluZGV4IDJjZTBmM2U0ZGY3Li4yMjExNjVkNmRh YyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vc3ltYm9sLmNjCisrKyBiL2djYy9mb3J0cmFu L3N5bWJvbC5jYwpAQCAtMzc2MSw3ICszNzYxLDExIEBAIGZyZWVfb2xkX3N5bWJvbCAoZ2Zj X3N5bWJvbCAqc3ltKQogICBpZiAoc3ltLT5vbGRfc3ltYm9sID09IE5VTEwpCiAgICAgcmV0 dXJuOwogCi0gIGlmIChzeW0tPm9sZF9zeW1ib2wtPmFzICE9IHN5bS0+YXMpCisgIGlmIChz eW0tPm9sZF9zeW1ib2wtPmFzICE9IE5VTEwKKyAgICAgICYmIHN5bS0+b2xkX3N5bWJvbC0+ YXMgIT0gc3ltLT5hcworICAgICAgJiYgIShzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MKKwkg ICAmJiBzeW0tPnRzLnUuZGVyaXZlZC0+YXR0ci5pc19jbGFzcworCSAgICYmIHN5bS0+b2xk X3N5bWJvbC0+YXMgPT0gQ0xBU1NfREFUQSAoc3ltKS0+YXMpKQogICAgIGdmY19mcmVlX2Fy cmF5X3NwZWMgKHN5bS0+b2xkX3N5bWJvbC0+YXMpOwogCiAgIGlmIChzeW0tPm9sZF9zeW1i b2wtPnZhbHVlICE9IHN5bS0+dmFsdWUpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2NsYXNzXzc0LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY2xh c3NfNzQuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzk0 ZWQ5MThmYwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Y2xhc3NfNzQuZjkwCkBAIC0wLDAgKzEsMTUxIEBACishIHsgZGctZG8gY29tcGlsZSB9Cish IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmNvYXJyYXk9c2luZ2xlIiB9CishCishIFBS IGZvcnRyYW4vMTA2ODU2CishCishIENvbnRyaWJ1dGVkIGJ5IEcuIFN0ZWlubWV0eiAKKyEK K3N1YnJvdXRpbmUgZm9vCisgIGludGVyZmFjZQorICAgIHN1YnJvdXRpbmUgYmFyKHgpCisg ICAgICB0eXBlKCopIDo6IHgKKyAgICBlbmQgc3Vicm91dGluZSBiYXIKKyAgZW5kIGludGVy ZmFjZQorICBjbGFzcygqKSA6OiB4LCB5CisgIGFsbG9jYXRhYmxlIDo6IHgKKyAgZGltZW5z aW9uIDo6IHgoOiksIHkoOiw6KQorICBjb2RpbWVuc2lvbiA6OiB4WzpdCisgIHBvaW50ZXIg OjogeQorICB5ID0+IG51bGwoKQorICBpZiAoYWxsb2NhdGVkKHgpKSB0aGVuCisgICAgY2Fs bCBiYXIoeCgyKVsxXSkKKyAgZW5kIGlmCisgIGlmIChhc3NvY2lhdGVkKHkpKSB0aGVuCisg ICAgY2FsbCBiYXIoeSgyLDIpKQorICBlbmQgaWYKK2VuZCBzdWJyb3V0aW5lIGZvbworCisK K3Byb2dyYW0gcAorICBjbGFzcygqKSwgYWxsb2NhdGFibGUgOjogeCwgeQorICB5ID0gJ2Fi YycKKyAgY2FsbCBzMSh4LCB5KQorY29udGFpbnMKKyAgc3Vicm91dGluZSBzMSh4LCB5KQor ICAgIGNsYXNzKCopIDo6IHgsIHkKKyAgZW5kCisgIHN1YnJvdXRpbmUgczIoeCwgeSkKKyAg ICBjbGFzcygqKSwgYWxsb2NhdGFibGUgOjogeCwgeQorICAgIG9wdGlvbmFsIDo6IHgKKyAg ZW5kCitlbmQKKworCitzdWJyb3V0aW5lIHMxICh4KQorICBjbGFzcygqKSAgICA6OiB4Cisg IGFsbG9jYXRhYmxlIDo6IHgKKyAgZGltZW5zaW9uICAgOjogeCg6KQorICBpZiAoYWxsb2Nh dGVkICh4KSkgcHJpbnQgKiwgc2l6ZSAoeCkKK2VuZAorCitzdWJyb3V0aW5lIHMyICh4KQor ICBjbGFzcygqKSAgICA6OiB4CisgIGFsbG9jYXRhYmxlIDo6IHgoOikKKyAgaWYgKGFsbG9j YXRlZCAoeCkpIHByaW50ICosIHNpemUgKHgpCitlbmQKKworc3Vicm91dGluZSBzMyAoeCkK KyAgY2xhc3MoKikgICAgOjogeCg6KQorICBhbGxvY2F0YWJsZSA6OiB4CisgIGlmIChhbGxv Y2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5kCisKK3N1YnJvdXRpbmUgczQgKHgp CisgIGNsYXNzKCopICAgIDo6IHgKKyAgZGltZW5zaW9uICAgOjogeCg6KQorICBhbGxvY2F0 YWJsZSA6OiB4CisgIGlmIChhbGxvY2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5k CisKKworc3Vicm91dGluZSBjMCAoeCkKKyAgY2xhc3MoKikgICAgOjogeAorICBhbGxvY2F0 YWJsZSA6OiB4CisgIGNvZGltZW5zaW9uIDo6IHhbOl0KKyAgZGltZW5zaW9uICAgOjogeCg6 KQorICBpZiAoYWxsb2NhdGVkICh4KSkgcHJpbnQgKiwgc2l6ZSAoeCkKK2VuZAorCitzdWJy b3V0aW5lIGMxICh4KQorICBjbGFzcygqKSAgICA6OiB4KDopCisgIGFsbG9jYXRhYmxlIDo6 IHhbOl0KKyAgaWYgKGFsbG9jYXRlZCAoeCkpIHByaW50ICosIHNpemUgKHgpCitlbmQKKwor c3Vicm91dGluZSBjMiAoeCkKKyAgY2xhc3MoKikgICAgOjogeFs6XQorICBhbGxvY2F0YWJs ZSA6OiB4KDopCisgIGlmIChhbGxvY2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5k CisKK3N1YnJvdXRpbmUgYzMgKHgpCisgIGNsYXNzKCopICAgIDo6IHgoOilbOl0KKyAgYWxs b2NhdGFibGUgOjogeAorICBpZiAoYWxsb2NhdGVkICh4KSkgcHJpbnQgKiwgc2l6ZSAoeCkK K2VuZAorCitzdWJyb3V0aW5lIGM0ICh4KQorICBjbGFzcygqKSAgICA6OiB4CisgIGRpbWVu c2lvbiAgIDo6IHgoOikKKyAgY29kaW1lbnNpb24gOjogeFs6XQorICBhbGxvY2F0YWJsZSA6 OiB4CisgIGlmIChhbGxvY2F0ZWQgKHgpKSBwcmludCAqLCBzaXplICh4KQorZW5kCisKKwor c3Vicm91dGluZSBwMSAoeCkKKyAgY2xhc3MoKikgICAgOjogeAorICBwb2ludGVyICAgICA6 OiB4CisgIGRpbWVuc2lvbiAgIDo6IHgoOikKKyAgaWYgKGFzc29jaWF0ZWQgKHgpKSBwcmlu dCAqLCBzaXplICh4KQorZW5kCisKK3N1YnJvdXRpbmUgcDIgKHgpCisgIGNsYXNzKCopICAg IDo6IHgKKyAgcG9pbnRlciAgICAgOjogeCg6KQorICBpZiAoYXNzb2NpYXRlZCAoeCkpIHBy aW50ICosIHNpemUgKHgpCitlbmQKKworc3Vicm91dGluZSBwMyAoeCkKKyAgY2xhc3MoKikg ICAgOjogeCg6KQorICBwb2ludGVyICAgICA6OiB4CisgIGlmIChhc3NvY2lhdGVkICh4KSkg cHJpbnQgKiwgc2l6ZSAoeCkKK2VuZAorCitzdWJyb3V0aW5lIHA0ICh4KQorICBjbGFzcygq KSAgICA6OiB4CisgIGRpbWVuc2lvbiAgIDo6IHgoOikKKyAgcG9pbnRlciAgICAgOjogeAor ICBpZiAoYXNzb2NpYXRlZCAoeCkpIHByaW50ICosIHNpemUgKHgpCitlbmQKKworCishIFRl c3RjYXNlIGJ5IE1pa2FlbCBNb3Jpbgorc3Vicm91dGluZSBtbSAoKQorICBwb2ludGVyICAg OjogeQorICBkaW1lbnNpb24gOjogeSg6LDopCisgIGNsYXNzKCopICA6OiB5CisgIGlmIChh c3NvY2lhdGVkICh5KSkgcHJpbnQgKiwgc2l6ZSAoeSkKK2VuZAorCishIFRlc3RjYXNlIGZy b20gcHI1Mzk1MQorc3Vicm91dGluZSBwcjUzOTUxICgpCisgIHR5cGUgdAorICBlbmQgdHlw ZSB0CisgIGNsYXNzKHQpLCBwb2ludGVyIDo6IEMKKyAgVEFSR0VUIDo6IEEKKyAgY2xhc3Mo dCksIGFsbG9jYXRhYmxlIDo6IEEsIEIKKyAgVEFSR0VUIDo6IEIKKyAgQyA9PiBBICEgVmFs aWQKKyAgQyA9PiBCICEgVmFsaWQsIGJ1dCB3YXMgcmVqZWN0ZWQKK2VuZApkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc183NS5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2NsYXNzXzc1LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZWIyOWFkNTFjODUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2NsYXNzXzc1LmY5MApAQCAtMCwwICsxLDI0IEBACishIHsg ZGctZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmNvYXJyYXk9 c2luZ2xlIiB9CishCishIFBSIGZvcnRyYW4vMTA2ODU2CishCishCishCitzdWJyb3V0aW5l IGZvbyh4LHkpCisgIGNsYXNzKCopLCBvcHRpb25hbCA6OiB4LCB5CisgIG9wdGlvbmFsICAg IDo6IHggICAgISB7IGRnLWVycm9yICJEdXBsaWNhdGUgT1BUSU9OQUwgYXR0cmlidXRlIiB9 CisgIHRhcmdldCAgICAgIDo6IHgKKyAgYWxsb2NhdGFibGUgOjogeAorICB0YXJnZXQgICAg ICA6OiB4ICAgICEgeyBkZy1lcnJvciAiRHVwbGljYXRlIFRBUkdFVCBhdHRyaWJ1dGUiIH0K KyAgYWxsb2NhdGFibGUgOjogeCAgICAhIHsgZGctZXJyb3IgIkR1cGxpY2F0ZSBBTExPQ0FU QUJMRSBhdHRyaWJ1dGUiIH0KKyAgcG9pbnRlciAgICAgOjogeQorICBjb250aWd1b3VzICA6 OiB5CisgIHBvaW50ZXIgICAgIDo6IHkgICAgISB7IGRnLWVycm9yICJEdXBsaWNhdGUgUE9J TlRFUiBhdHRyaWJ1dGUiIH0KKyAgY29udGlndW91cyAgOjogeSAgICAhIHsgZGctZXJyb3Ig IkR1cGxpY2F0ZSBDT05USUdVT1VTIGF0dHJpYnV0ZSIgfQorICBjb2RpbWVuc2lvbiA6OiB4 WzpdCisgIGRpbWVuc2lvbiAgIDo6IHgoOiw6KQorICBkaW1lbnNpb24gICA6OiB5KDosOiw6 KQorICBjb2RpbWVuc2lvbiA6OiB4WzpdICEgeyBkZy1lcnJvciAiRHVwbGljYXRlIENPRElN RU5TSU9OIGF0dHJpYnV0ZSIgfQorICBkaW1lbnNpb24gICA6OiB5KDopICEgeyBkZy1lcnJv ciAiRHVwbGljYXRlIERJTUVOU0lPTiBhdHRyaWJ1dGUiIH0KK2VuZApkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9pbnRlcmZhY2VfNDEuZjkwIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9pbnRlcmZhY2VfNDEuZjkwCmluZGV4IGI1ZWE4YWYxODlkLi4y ZmVjMDFlM2NmOSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9pbnRl cmZhY2VfNDEuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvaW50ZXJmYWNl XzQxLmY5MApAQCAtMTQsNiArMTQsNiBAQCBjb250YWlucwogICAgc3Vicm91dGluZSBzCiAg ICAgICB0eXBlKHQpIDo6IHgoMikKICAgICAgIHJlYWwgOjogegotICAgICAgeiA9IGYoeCkg ICAgICEgeyBkZy1lcnJvciAiUmFuayBtaXNtYXRjaCBpbiBhcmd1bWVudCIgfQorICAgICAg eiA9IGYoeCkKICAgIGVuZAogZW5kCi0tIAoyLjM1LjMKCg== --------------SxzE8kS3JW4lMXYRMnW7e8Sy--