From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20287 invoked by alias); 14 Oct 2018 09:41:40 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 20260 invoked by uid 89); 14 Oct 2018 09:41:39 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Received:sk:g185-v6, HX-Received:6bc2, H*Ad:U*burnus, burnusgccgnuorg X-HELO: mail-yw1-f51.google.com Received: from mail-yw1-f51.google.com (HELO mail-yw1-f51.google.com) (209.85.161.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 14 Oct 2018 09:41:37 +0000 Received: by mail-yw1-f51.google.com with SMTP id m127-v6so6530293ywb.0; Sun, 14 Oct 2018 02:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=tJd1qsh4fjAGm7KhWBoS/Y01vREU6O2juI5IIdYN5ss=; b=UcDWpC1AXdP4YxjSVhoqFR0F40xgQhX8hAKHBS/BS9YYgtGLUyY2YsQn3OdC60b9jV miUU9bCmvZQ7VMgjHFux1Yk12gtvEdenmmuNPno10N9mi6gN9WYrUoiWoAi0c5SoBmwo w4peBPPMgBFOzLQI8MX7M6VDXUvVV6tAsNJsJOm+l8qxKclKBN8xdxWIIsviu0E5gxzb fKkosbaCSxMarZMm9Mj/F/SAjkrpqvYvUQ5LxPnOP1tgFG3YjvKoZnk+WE5C00gygCr+ jUXyUjzDrZfaegDl4CXvYX85geaO7KK7r9Rx5EbowqhVZJ3BFAYu9+Pfv2/SYtc3LX3K Ynmw== MIME-Version: 1.0 From: Paul Richard Thomas Date: Sun, 14 Oct 2018 09:41:00 -0000 Message-ID: Subject: [Patch, fortran] PR87566 - ICE with class(*) and select To: "fortran@gcc.gnu.org" , gcc-patches Cc: burnus@gcc.gnu.org Content-Type: multipart/mixed; boundary="00000000000044b7e905782d2030" X-IsSubscribed: yes X-SW-Source: 2018-10/txt/msg00062.txt.bz2 --00000000000044b7e905782d2030 Content-Type: text/plain; charset="UTF-8" Content-length: 1328 Tobias started this patch and I finished it in answering a question that he had about a problem with the gimplifier. Along the way, I tried the associate version of the select type test case and found that it failed in a different way. The chunk in resolve_assoc_var fixes that. Bootstrapped and regtested on FC28/x86_64 - OK for trunk? On checking to see if any other associate problems had been fixed, I noticed, as had Dominique, that PR83146 was fixed. I committed the testcase to trunk as revision 265148 to make sure that it remained so. Paul 2018-10-14 Paul Thomas Tobias Burnus PR fortran/87566 * resolve.c (resolve_assoc_var): Add missing array spec for class associate names. (resolve_select_type): Handle case where last typed component of the selector has a different type to the expression. * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace call to gfc_expr_to_initialize with call to gfc_copy_expr. (gfc_conv_class_to_class): Guard assignment to 'len' field against case where zero constant is supplied. 2018-10-14 Paul Thomas Tobias Burnus PR fortran/87566 * gfortran.dg/select_type_44.f90: New test. * gfortran.dg/associate_42.f90: New test. --00000000000044b7e905782d2030 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_jn8ojola0 Content-length: 8337 SW5kZXg6IGdjYy9mb3J0cmFuL3Jlc29sdmUuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CioqKiBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHJldmlzaW9uIDI2 NDk0OCkKLS0tIGdjYy9mb3J0cmFuL3Jlc29sdmUuYwkod29ya2luZyBjb3B5 KQoqKioqKioqKioqKioqKiogcmVzb2x2ZV9hc3NvY192YXIgKGdmY19zeW1i b2wqIHN5bSwgYm9vbAoqKiogODY3NSw4NjgwICoqKioKLS0tIDg2NzUsODY5 MiAtLS0tCiAgCSAgaWYgKGFzLT5jb3JhbmsgIT0gMCkKICAJICAgIHN5bS0+ YXR0ci5jb2RpbWVuc2lvbiA9IDE7CiAgCX0KKyAgICAgICBlbHNlIGlmIChz eW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MgJiYgKCFDTEFTU19EQVRBIChzeW0p LT5hcyB8fCBzeW0tPmFzc29jLT5yYW5rZ3Vlc3NlZCkpCisgCXsKKyAJICBp ZiAoIUNMQVNTX0RBVEEgKHN5bSktPmFzKQorIAkgICAgQ0xBU1NfREFUQSAo c3ltKS0+YXMgPSBnZmNfZ2V0X2FycmF5X3NwZWMgKCk7CisgCSAgYXMgPSBD TEFTU19EQVRBIChzeW0pLT5hczsKKyAJICBhcy0+cmFuayA9IHRhcmdldC0+ cmFuazsKKyAJICBhcy0+dHlwZSA9IEFTX0RFRkVSUkVEOworIAkgIGFzLT5j b3JhbmsgPSBnZmNfZ2V0X2NvcmFuayAodGFyZ2V0KTsKKyAJICBDTEFTU19E QVRBIChzeW0pLT5hdHRyLmRpbWVuc2lvbiA9IDE7CisgCSAgaWYgKGFzLT5j b3JhbmsgIT0gMCkKKyAJICAgIENMQVNTX0RBVEEgKHN5bSktPmF0dHIuY29k aW1lbnNpb24gPSAxOworIAl9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoq KioqKioqKioqKioqKiogcmVzb2x2ZV9zZWxlY3RfdHlwZSAoZ2ZjX2NvZGUg KmNvZGUsIGdmYwoqKiogODg3NSw4ODgzICoqKioKICAKICAgIGlmIChjb2Rl LT5leHByMikKICAgICAgewohICAgICAgIGlmIChjb2RlLT5leHByMS0+c3lt dHJlZS0+bi5zeW0tPmF0dHIudW50eXBlZCkKISAJY29kZS0+ZXhwcjEtPnN5 bXRyZWUtPm4uc3ltLT50cyA9IGNvZGUtPmV4cHIyLT50czsKISAgICAgICBz ZWxlY3Rvcl90eXBlID0gQ0xBU1NfREFUQSAoY29kZS0+ZXhwcjIpLT50cy51 LmRlcml2ZWQ7CiAgCiAgICAgICAgaWYgKGNvZGUtPmV4cHIyLT5yYW5rICYm IENMQVNTX0RBVEEgKGNvZGUtPmV4cHIxKS0+YXMpCiAgCUNMQVNTX0RBVEEg KGNvZGUtPmV4cHIxKS0+YXMtPnJhbmsgPSBjb2RlLT5leHByMi0+cmFuazsK LS0tIDg4ODcsODkxMCAtLS0tCiAgCiAgICBpZiAoY29kZS0+ZXhwcjIpCiAg ICAgIHsKISAgICAgICBnZmNfcmVmICpyZWYyID0gTlVMTDsKISAgICAgICBm b3IgKHJlZiA9IGNvZGUtPmV4cHIyLT5yZWY7IHJlZiAhPSBOVUxMOyByZWYg PSByZWYtPm5leHQpCiEgCSBpZiAocmVmLT50eXBlID09IFJFRl9DT01QT05F TlQKISAJICAgICAmJiByZWYtPnUuYy5jb21wb25lbnQtPnRzLnR5cGUgPT0g QlRfQ0xBU1MpCiEgCSAgIHJlZjIgPSByZWY7CiEgCiEgICAgICAgaWYgKHJl ZjIpCiEgCXsKISAJICBpZiAoY29kZS0+ZXhwcjEtPnN5bXRyZWUtPm4uc3lt LT5hdHRyLnVudHlwZWQpCiEgCSAgICBjb2RlLT5leHByMS0+c3ltdHJlZS0+ bi5zeW0tPnRzID0gcmVmLT51LmMuY29tcG9uZW50LT50czsKISAJICBzZWxl Y3Rvcl90eXBlID0gQ0xBU1NfREFUQSAocmVmMi0+dS5jLmNvbXBvbmVudCkt PnRzLnUuZGVyaXZlZDsKISAJfQohICAgICAgIGVsc2UKISAJewohIAkgIGlm IChjb2RlLT5leHByMS0+c3ltdHJlZS0+bi5zeW0tPmF0dHIudW50eXBlZCkK ISAJICAgIGNvZGUtPmV4cHIxLT5zeW10cmVlLT5uLnN5bS0+dHMgPSBjb2Rl LT5leHByMi0+dHM7CiEgCSAgc2VsZWN0b3JfdHlwZSA9IENMQVNTX0RBVEEg KGNvZGUtPmV4cHIyKS0+dHMudS5kZXJpdmVkOwohIAl9CiAgCiAgICAgICAg aWYgKGNvZGUtPmV4cHIyLT5yYW5rICYmIENMQVNTX0RBVEEgKGNvZGUtPmV4 cHIxKS0+YXMpCiAgCUNMQVNTX0RBVEEgKGNvZGUtPmV4cHIxKS0+YXMtPnJh bmsgPSBjb2RlLT5leHByMi0+cmFuazsKSW5kZXg6IGdjYy9mb3J0cmFuL3Ry YW5zLWV4cHIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CioqKiBnY2MvZm9y dHJhbi90cmFucy1leHByLmMJKHJldmlzaW9uIDI2NDk0OCkKLS0tIGdjYy9m b3J0cmFuL3RyYW5zLWV4cHIuYwkod29ya2luZyBjb3B5KQoqKioqKioqKioq KioqKiogZ2ZjX2ZpbmRfYW5kX2N1dF9hdF9sYXN0X2NsYXNzX3JlZiAoZ2Zj XwoqKiogMzk0LDQwMCAqKioqCiAgICAgICAgZS0+cmVmID0gTlVMTDsKICAg ICAgfQogIAohICAgYmFzZV9leHByID0gZ2ZjX2V4cHJfdG9faW5pdGlhbGl6 ZSAoZSk7CiAgCiAgICAvKiBSZXN0b3JlIHRoZSBvcmlnaW5hbCB0YWlsIGV4 cHJlc3Npb24uICAqLwogICAgaWYgKGNsYXNzX3JlZikKLS0tIDM5NCw0MDAg LS0tLQogICAgICAgIGUtPnJlZiA9IE5VTEw7CiAgICAgIH0KICAKISAgIGJh c2VfZXhwciA9IGdmY19jb3B5X2V4cHIgKGUpOwogIAogICAgLyogUmVzdG9y ZSB0aGUgb3JpZ2luYWwgdGFpbCBleHByZXNzaW9uLiAgKi8KICAgIGlmIChj bGFzc19yZWYpCioqKioqKioqKioqKioqKiBnZmNfY29udl9jbGFzc190b19j bGFzcyAoZ2ZjX3NlICpwYXJtc2UsCioqKiAxMTMxLDExMzcgKioqKgogIAog ICAgICAgIC8qIFJldHVybiB0aGUgbGVuIGNvbXBvbmVudCwgZXhjZXB0IGlu IHRoZSBjYXNlIG9mIHNjYWxhcml6ZWQgYXJyYXkKICAJcmVmZXJlbmNlcywg d2hlcmUgdGhlIGR5bmFtaWMgdHlwZSBjYW5ub3QgY2hhbmdlLiAgKi8KISAg ICAgICBpZiAoIWVsZW1lbnRhbCAmJiBmdWxsX2FycmF5ICYmIGNvcHliYWNr KQogIAkgIGdmY19hZGRfbW9kaWZ5ICgmcGFybXNlLT5wb3N0LCB0bXAsCiAg CQkJICBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQRSAodG1wKSwgY3RyZWUpKTsK ICAgICAgfQotLS0gMTEzMSwxMTM4IC0tLS0KICAKICAgICAgICAvKiBSZXR1 cm4gdGhlIGxlbiBjb21wb25lbnQsIGV4Y2VwdCBpbiB0aGUgY2FzZSBvZiBz Y2FsYXJpemVkIGFycmF5CiAgCXJlZmVyZW5jZXMsIHdoZXJlIHRoZSBkeW5h bWljIHR5cGUgY2Fubm90IGNoYW5nZS4gICovCiEgICAgICAgaWYgKCFlbGVt ZW50YWwgJiYgZnVsbF9hcnJheSAmJiBjb3B5YmFjawohIAkgICYmIChVTkxJ TUlURURfUE9MWSAoZSkgfHwgVkFSX1AgKHRtcCkpKQogIAkgIGdmY19hZGRf bW9kaWZ5ICgmcGFybXNlLT5wb3N0LCB0bXAsCiAgCQkJICBmb2xkX2NvbnZl cnQgKFRSRUVfVFlQRSAodG1wKSwgY3RyZWUpKTsKICAgICAgfQpJbmRleDog Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9hc3NvY2lhdGVfNDIuZjkwCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKioqIGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvYXNzb2NpYXRlXzQyLmY5MAkobm9uZXhpc3RlbnQpCi0tLSBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fzc29jaWF0ZV80Mi5mOTAJKHdvcmtp bmcgY29weSkKKioqKioqKioqKioqKioqCioqKiAwICoqKioKLS0tIDEsNDEg LS0tLQorICEgeyBkZy1kbyBydW4gfQorICEKKyAhIFRlc3RzIHRoZSBmaXgg Zm9yIGEgYnVnIHRoYXQgd2FzIGZvdW5kIGluIHRoZSBjb3Vyc2Ugb2YgZml4 aW5nIFBSODc1NjYuCisgIQorICEgQ29udHJpYnV0ZWQgYnkgUGF1bCBUaG9t YXMgIDxwYXVsdEBnY2MuZ251Lm9yZz4KKyAhCisgICAgIGNhbGwgQWRkQXJy YXkKKyBjb250YWlucworICAgc3Vicm91dGluZSBBZGRBcnJheSgpCisgICAg IHR5cGUgT2JqZWN0X2FycmF5X3BvaW50ZXIKKyAgICAgICAgIGNsYXNzKCop LCBwb2ludGVyIDo6IHAoOikgPT4gbnVsbCgpCisgICAgIGVuZCB0eXBlIE9i amVjdF9hcnJheV9wb2ludGVyCisgCisgICAgIHR5cGUgKE9iamVjdF9hcnJh eV9wb2ludGVyKSA6OiBvYmoKKyAgICAgY2hhcmFjdGVyKDMpLCB0YXJnZXQg OjogdGd0MSgyKSA9IFsnb25lJywndHdvJ10KKyAgICAgY2hhcmFjdGVyKDUp LCB0YXJnZXQgOjogdGd0MigyKSA9IFsndGhyZWUnLCdmb3VyICddCisgICAg IHJlYWwsIHRhcmdldCA6OiB0Z3QzKDMpID0gWzEuMCwyLjAsMy4wXQorIAor ICAgICBvYmolcCA9PiB0Z3QxCisgICAgIGFzc29jaWF0ZSAocG9pbnQgPT4g b2JqJXApCisgICAgICAgc2VsZWN0IHR5cGUgKHBvaW50KSAgICAgICAgICEg VXNlZCB0byBJQ0UgaGVyZS4KKyAgICAgICAgIHR5cGUgaXMgKGNoYXJhY3Rl cigqKSkKKyAgICAgICAgICAgaWYgKGFueSAocG9pbnQgLm5lLiB0Z3QxKSkg c3RvcCAxCisgICAgICAgZW5kIHNlbGVjdAorICAgICAgIHBvaW50ID0+IHRn dDIKKyAgICAgZW5kIGFzc29jaWF0ZQorIAorICAgICBzZWxlY3QgdHlwZSAo eiA9PiBvYmolcCkKKyAgICAgICB0eXBlIGlzIChjaGFyYWN0ZXIoKikpCisg ICAgICAgICBpZiAoYW55ICh6IC5uZS4gdGd0MikpIHN0b3AgMgorICAgICBl bmQgc2VsZWN0CisgCisgICAgIG9iaiVwID0+IHRndDMKKyAgICAgYXNzb2Np YXRlIChwb2ludCA9PiBvYmolcCkKKyAgICAgICBzZWxlY3QgdHlwZSAocG9p bnQpCisgICAgICAgICB0eXBlIGlzIChyZWFsKQorICAgICAgICAgICBpZiAo YW55IChwb2ludCAubmUuIHRndDMpKSBzdG9wIDMKKyAgICAgICBlbmQgc2Vs ZWN0CisgICAgIGVuZCBhc3NvY2lhdGUKKyAgIGVuZCBzdWJyb3V0aW5lIEFk ZEFycmF5CisgZW5kCkluZGV4OiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L3NlbGVjdF90eXBlXzQ0LmY5MAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cioq KiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3NlbGVjdF90eXBlXzQ0LmY5 MAkobm9uZXhpc3RlbnQpCi0tLSBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L3NlbGVjdF90eXBlXzQ0LmY5MAkod29ya2luZyBjb3B5KQoqKioqKioqKioq KioqKioKKioqIDAgKioqKgotLS0gMSw0MiAtLS0tCisgISB7IGRnLWRvIHJ1 biB9CisgIQorICEgVGVzdCB0aGUgZml4IGZvciBQUjg3NTY2CisgIQorICEg Q29udHJpYnV0ZWQgYnkgQW50b255IExld2lzICA8YW50b255QGNvc21vbG9n aXN0LmluZm8+CisgIQorICAgY2FsbCBBZGRBcnJheQorIGNvbnRhaW5zCisg ICBzdWJyb3V0aW5lIEFkZEFycmF5KCkKKyAgICAgdHlwZSBPYmplY3RfYXJy YXlfcG9pbnRlcgorICAgICAgICAgY2xhc3MoKiksIHBvaW50ZXIgOjogcCg6 KSA9PiBudWxsKCkKKyAgICAgZW5kIHR5cGUgT2JqZWN0X2FycmF5X3BvaW50 ZXIKKyAgICAgY2xhc3MoKiksIHBvaW50ZXIgOjogUHQgPT4gbnVsbCgpCisg ICAgIHR5cGUgKE9iamVjdF9hcnJheV9wb2ludGVyKSA6OiBvYmoKKyAgICAg Y2hhcmFjdGVyKDMpLCB0YXJnZXQgOjogdGd0MSgyKSA9IFsnb25lJywndHdv J10KKyAgICAgY2hhcmFjdGVyKDUpLCB0YXJnZXQgOjogdGd0MigyKSA9IFsn dGhyZWUnLCdmb3VyICddCisgCisgICAgIGFsbG9jYXRlIChQdCwgc291cmNl ID0gT2JqZWN0X2FycmF5X3BvaW50ZXIgKCkpCisgICAgIHNlbGVjdCB0eXBl IChQdCkKKyAgICAgICB0eXBlIGlzIChvYmplY3RfYXJyYXlfcG9pbnRlcikK KyAgICAgICAgIFB0JXAgPT4gdGd0MQorICAgICBlbmQgc2VsZWN0CisgCisg ICAgIHNlbGVjdCB0eXBlIChQdCkKKyAgICAgICBjbGFzcyBpcyAob2JqZWN0 X2FycmF5X3BvaW50ZXIpCisgICAgICAgICBzZWxlY3QgdHlwZSAoUG9pbnQ9 PiBQdCVQKQorICAgICAgICAgICB0eXBlIGlzIChjaGFyYWN0ZXIoKikpCisg ICAgICAgICAgICAgaWYgKGFueSAoUG9pbnQgLm5lLiB0Z3QxKSkgc3RvcCAx CisgICAgICAgICAgICAgUG9pbnQgPSBbJ2FiYycsJ2VmZyddCisgICAgICAg ICBlbmQgc2VsZWN0CisgICAgIGVuZCBzZWxlY3QKKyAKKyAgICAgc2VsZWN0 IHR5cGUgKFB0KQorICAgICAgIGNsYXNzIGlzIChvYmplY3RfYXJyYXlfcG9p bnRlcikKKyAgICAgICAgIHNlbGVjdCB0eXBlIChQb2ludD0+IFB0JVApCisg ICAgICAgICAgIHR5cGUgaXMgKGNoYXJhY3RlcigqKSkKKyAgICAgICAgICAg ICBpZiAoYW55IChQb2ludCAubmUuIFsnYWJjJywnZWZnJ10pKSBzdG9wIDIK KyAgICAgICAgIGVuZCBzZWxlY3QKKyAgICAgZW5kIHNlbGVjdAorIAorICAg ZW5kIHN1YnJvdXRpbmUgQWRkQXJyYXkKKyBlbmQK --00000000000044b7e905782d2030--