From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1805 invoked by alias); 4 Nov 2015 15:03:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 1788 invoked by uid 89); 4 Nov 2015 15:03:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-ob0-f176.google.com Received: from mail-ob0-f176.google.com (HELO mail-ob0-f176.google.com) (209.85.214.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 04 Nov 2015 15:03:12 +0000 Received: by obbww6 with SMTP id ww6so14964129obb.0; Wed, 04 Nov 2015 07:03:10 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.60.59.229 with SMTP id c5mr1189234oer.68.1446649390679; Wed, 04 Nov 2015 07:03:10 -0800 (PST) Received: by 10.202.196.134 with HTTP; Wed, 4 Nov 2015 07:03:10 -0800 (PST) Date: Wed, 04 Nov 2015 15:03:00 -0000 Message-ID: Subject: [Patch, fortran] PR68196 [4.9/5/6 Regression] ICE on function result with procedure pointer component From: Paul Richard Thomas To: "fortran@gcc.gnu.org" , gcc-patches Cc: Damian Rouson Content-Type: multipart/mixed; boundary=089e012955a40c8db50523b84f29 X-SW-Source: 2015-11/txt/msg00362.txt.bz2 --089e012955a40c8db50523b84f29 Content-Type: text/plain; charset=UTF-8 Content-length: 997 Dear All, The patch for these PRs is fully explained by the the comments and/or changelogs. PR66465 has no connection with PR68196, other than Damian asking if it is connected! Bootstrapped and regtested on x86_64/FC21 - OK for trunk and a few weeks later 4.9 and 5 branches? Cheers Paul 2015-11-04 Paul Thomas PR fortran/68196 * class.c (has_finalizer_component): Prevent infinite recursion through this function if the derived type and that of its component are the same. * trans-types.c (gfc_get_derived_type): Do the same for proc pointers by ignoring the explicit interface for the component. PR fortran/66465 * check.c (same_type_check): If either of the expressions is BT_PROCEDURE, use the typespec from the symbol, rather than the expression. 2015-11-04 Paul Thomas PR fortran/68196 * gfortran.dg/proc_ptr_47.f90: New test. PR fortran/66465 * gfortran.dg/pr66465.f90: New test. --089e012955a40c8db50523b84f29 Content-Type: text/plain; charset=US-ASCII; name="commit.diff" Content-Disposition: attachment; filename="commit.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igkxkpum0 Content-length: 7308 SW5kZXg6IGdjYy9mb3J0cmFuL2NoZWNrLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQoqKiogZ2NjL2ZvcnRyYW4vY2hlY2suYwkocmV2aXNpb24gMjI5NTcx KQotLS0gZ2NjL2ZvcnRyYW4vY2hlY2suYwkod29ya2luZyBjb3B5KQoqKioq KioqKioqKioqKiogbGVzc190aGFuX2JpdHNpemUyIChjb25zdCBjaGFyICph cmcxLCBnZgoqKiogMzk5LDQwNSAqKioqCiAgc3RhdGljIGJvb2wKICBzYW1l X3R5cGVfY2hlY2sgKGdmY19leHByICplLCBpbnQgbiwgZ2ZjX2V4cHIgKmYs IGludCBtKQogIHsKISAgIGlmIChnZmNfY29tcGFyZV90eXBlcyAoJmUtPnRz LCAmZi0+dHMpKQogICAgICByZXR1cm4gdHJ1ZTsKICAKICAgIGdmY19lcnJv ciAoIiVxcyBhcmd1bWVudCBvZiAlcXMgaW50cmluc2ljIGF0ICVMIG11c3Qg YmUgdGhlIHNhbWUgdHlwZSAiCi0tLSAzOTksNDEzIC0tLS0KICBzdGF0aWMg Ym9vbAogIHNhbWVfdHlwZV9jaGVjayAoZ2ZjX2V4cHIgKmUsIGludCBuLCBn ZmNfZXhwciAqZiwgaW50IG0pCiAgewohICAgZ2ZjX3R5cGVzcGVjICpldHMg PSAmZS0+dHM7CiEgICBnZmNfdHlwZXNwZWMgKmZ0cyA9ICZmLT50czsKISAK ISAgIGlmIChlLT50cy50eXBlID09IEJUX1BST0NFRFVSRSAmJiBlLT5zeW10 cmVlLT5uLnN5bSkKISAgICAgZXRzID0gJmUtPnN5bXRyZWUtPm4uc3ltLT50 czsKISAgIGlmIChmLT50cy50eXBlID09IEJUX1BST0NFRFVSRSAmJiBmLT5z eW10cmVlLT5uLnN5bSkKISAgICAgZnRzID0gJmYtPnN5bXRyZWUtPm4uc3lt LT50czsKISAKISAgIGlmIChnZmNfY29tcGFyZV90eXBlcyAoZXRzLCBmdHMp KQogICAgICByZXR1cm4gdHJ1ZTsKICAKICAgIGdmY19lcnJvciAoIiVxcyBh cmd1bWVudCBvZiAlcXMgaW50cmluc2ljIGF0ICVMIG11c3QgYmUgdGhlIHNh bWUgdHlwZSAiCkluZGV4OiBnY2MvZm9ydHJhbi9jbGFzcy5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKioqIGdjYy9mb3J0cmFuL2NsYXNzLmMJKHJldmlz aW9uIDIyOTU3MSkKLS0tIGdjYy9mb3J0cmFuL2NsYXNzLmMJKHdvcmtpbmcg Y29weSkKKioqKioqKioqKioqKioqIGhhc19maW5hbGl6ZXJfY29tcG9uZW50 IChnZmNfc3ltYm9sICpkZXIKKioqIDg0Myw4NDkgKioqKgotLS0gODQzLDg1 MyAtLS0tCiAgCSAgJiYgYy0+dHMudS5kZXJpdmVkLT5mMmtfZGVyaXZlZC0+ ZmluYWxpemVycykKICAJcmV0dXJuIHRydWU7CiAgCisgICAgICAgLyogU3Rv cCBpbmZpbml0ZSByZWN1cnNpb24gdGhyb3VnaCB0aGlzIGZ1bmN0aW9uIGJ5 IGluaGliaXRpbmcKKyAJIGNhbGxzIHdoZW4gdGhlIGRlcml2ZWQgdHlwZSBh bmQgdGhhdCBvZiB0aGUgY29tcG9uZW50IGFyZQorIAkgdGhlIHNhbWUuICAq LwogICAgICAgIGlmIChjLT50cy50eXBlID09IEJUX0RFUklWRUQKKyAJICAm JiAhZ2ZjX2NvbXBhcmVfZGVyaXZlZF90eXBlcyAoZGVyaXZlZCwgYy0+dHMu dS5kZXJpdmVkKQogIAkgICYmICFjLT5hdHRyLnBvaW50ZXIgJiYgIWMtPmF0 dHIuYWxsb2NhdGFibGUKICAJICAmJiBoYXNfZmluYWxpemVyX2NvbXBvbmVu dCAoYy0+dHMudS5kZXJpdmVkKSkKICAJcmV0dXJuIHRydWU7CkluZGV4OiBn Y2MvZm9ydHJhbi90cmFucy10eXBlcy5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKioqIGdjYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmMJKHJldmlzaW9uIDIy OTU3MSkKLS0tIGdjYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmMJKHdvcmtpbmcg Y29weSkKKioqKioqKioqKioqKioqIGdmY19nZXRfZGVyaXZlZF90eXBlIChn ZmNfc3ltYm9sICogZGVyaXYKKioqIDIzNjYsMjM3MSAqKioqCi0tLSAyMzY2 LDIzNzIgLS0tLQogICAgZ2ZjX2NvbXBvbmVudCAqYzsKICAgIGdmY19kdF9s aXN0ICpkdDsKICAgIGdmY19uYW1lc3BhY2UgKm5zOworICAgdHJlZSB0bXA7 CiAgCiAgICBpZiAoZGVyaXZlZC0+YXR0ci51bmxpbWl0ZWRfcG9seW1vcnBo aWMKICAgICAgICB8fCAoZmxhZ19jb2FycmF5ID09IEdGQ19GQ09BUlJBWV9M SUIKKioqKioqKioqKioqKioqIGdmY19nZXRfZGVyaXZlZF90eXBlIChnZmNf c3ltYm9sICogZGVyaXYKKioqIDI1MTcsMjUyNCAqKioqCiAgICAgICBub2Rl IGFzIERFQ0xfQ09OVEVYVCBvZiBlYWNoIEZJRUxEX0RFQ0wuICAqLwogICAg Zm9yIChjID0gZGVyaXZlZC0+Y29tcG9uZW50czsgYzsgYyA9IGMtPm5leHQp CiAgICAgIHsKISAgICAgICBpZiAoYy0+YXR0ci5wcm9jX3BvaW50ZXIpCiAg CWZpZWxkX3R5cGUgPSBnZmNfZ2V0X3BwY190eXBlIChjKTsKICAgICAgICBl bHNlIGlmIChjLT50cy50eXBlID09IEJUX0RFUklWRUQgfHwgYy0+dHMudHlw ZSA9PSBCVF9DTEFTUykKICAgICAgICAgIGZpZWxkX3R5cGUgPSBjLT50cy51 LmRlcml2ZWQtPmJhY2tlbmRfZGVjbDsKICAgICAgICBlbHNlCi0tLSAyNTE4 LDI1MzYgLS0tLQogICAgICAgbm9kZSBhcyBERUNMX0NPTlRFWFQgb2YgZWFj aCBGSUVMRF9ERUNMLiAgKi8KICAgIGZvciAoYyA9IGRlcml2ZWQtPmNvbXBv bmVudHM7IGM7IGMgPSBjLT5uZXh0KQogICAgICB7CiEgICAgICAgLyogUHJl dmVudCBpbmZpbml0ZSByZWN1cnNpb24sIHdoZW4gdGhlIHByb2NlZHVyZSBw b2ludGVyIHR5cGUgaXMKISAJIHRoZSBzYW1lIGFzIGRlcml2ZWQsIGJ5IGZv cmNpbmcgdGhlIHByb2NlZHVyZSBwb2ludGVyIGNvbXBvbmVudCB0bwohIAkg YmUgYnVpbHQgYXMgaWYgdGhlIGV4cGxpY2l0IGludGVyZmFjZSBkb2VzIG5v dCBleGlzdC4gICovCiEgICAgICAgaWYgKGMtPmF0dHIucHJvY19wb2ludGVy CiEgCSAgJiYgKChjLT50cy50eXBlICE9IEJUX0RFUklWRUQgJiYgYy0+dHMu dHlwZSAhPSBCVF9DTEFTUykKISAJICAgICAgIHx8IChjLT50cy51LmRlcml2 ZWQKISAJCSAgICYmICFnZmNfY29tcGFyZV9kZXJpdmVkX3R5cGVzIChkZXJp dmVkLCBjLT50cy51LmRlcml2ZWQpKSkpCiAgCWZpZWxkX3R5cGUgPSBnZmNf Z2V0X3BwY190eXBlIChjKTsKKyAgICAgICBlbHNlIGlmIChjLT5hdHRyLnBy b2NfcG9pbnRlciAmJiBkZXJpdmVkLT5iYWNrZW5kX2RlY2wpCisgCXsKKyAJ ICB0bXAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKGRlcml2ZWQtPmJh Y2tlbmRfZGVjbCwgTlVMTF9UUkVFKTsKKyAJICBmaWVsZF90eXBlID0gYnVp bGRfcG9pbnRlcl90eXBlICh0bXApOworIAl9CiAgICAgICAgZWxzZSBpZiAo Yy0+dHMudHlwZSA9PSBCVF9ERVJJVkVEIHx8IGMtPnRzLnR5cGUgPT0gQlRf Q0xBU1MpCiAgICAgICAgICBmaWVsZF90eXBlID0gYy0+dHMudS5kZXJpdmVk LT5iYWNrZW5kX2RlY2w7CiAgICAgICAgZWxzZQpJbmRleDogZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9wcjY2NDY1LmY5MAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CioqKiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByNjY0NjUu ZjkwCShyZXZpc2lvbiAwKQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9wcjY2NDY1LmY5MAkod29ya2luZyBjb3B5KQoqKioqKioqKioqKioqKioK KioqIDAgKioqKgotLS0gMSwyMyAtLS0tCisgISB7IGRnLWRvIGNvbXBpbGUg fQorICEKKyAhIFRlc3RzIHRoZSBmaXggZm9yIFBSNjY0NjUsIGluIHdoaWNo IHRoZSBhcmd1bWVudHMgb2YgdGhlIGNhbGwgdG8KKyAhIEFTU09DSUFURUQg d2VyZSBmYWxzbHkgZGV0ZWN0ZWQgdG8gaGF2ZSBkaWZmZXJlbnQgdHlwZS9r aW5kLgorICEKKyAhIENvbnRyaWJ1dGVkIGJ5IERhbWlhbiBSb3Vzb24gIDxk YW1pYW5Ac291cmNlcnlpbnN0aXR1dGUub3JnPgorICEKKyAgIGludGVyZmFj ZQorICAgICAgcmVhbCBmdW5jdGlvbiBIYW5kbGVySW50ZXJmYWNlIChhcmcp CisgICAgICAgIHJlYWwgOjogYXJnCisgICAgICBlbmQKKyAgIGVuZCBpbnRl cmZhY2UKKyAKKyAgIHR5cGUgVGV4dEhhbmRsZXJUZXN0Q2FzZQorICAgICAg cHJvY2VkdXJlIChIYW5kbGVySW50ZXJmYWNlKSwgbm9wYXNzLCBwb2ludGVy IDo6IGhhbmRsZXJPdXQ9Pm51bGwoKQorICAgZW5kIHR5cGUKKyAKKyAgIHR5 cGUoVGV4dEhhbmRsZXJUZXN0Q2FzZSkgdGhpcworIAorICAgcHJvY2VkdXJl IChIYW5kbGVySW50ZXJmYWNlKSwgcG9pbnRlciA6OiBwcm9jUHRyPT5udWxs KCkKKyAKKyAgIHByaW50KiwgYXNzb2NpYXRlZChwcm9jUHRyLCB0aGlzJWhh bmRsZXJPdXQpCisgZW5kCkluZGV4OiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL3Byb2NfcHRyXzQ3LmY5MAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cioq KiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3Byb2NfcHRyXzQ3LmY5MAko cmV2aXNpb24gMCkKLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHJv Y19wdHJfNDcuZjkwCSh3b3JraW5nIGNvcHkpCioqKioqKioqKioqKioqKgoq KiogMCAqKioqCi0tLSAxLDM3IC0tLS0KKyAhIHsgZGctZG8gcnVuIH0KKyAh IFRlc3RzIHRoZSBmaXggZm9yIFBSNjgxOTYKKyAhCisgISBDb250cmlidXRl ZCBieSBEYW1pYW4gUm91c29uICA8ZGFtaWFuQHNvdXJjZXJ5aW5zdGl0dXRl Lm9yZz4KKyAhCisgICB0eXBlIEFBCisgICAgIGludGVnZXIgOjogaQorICAg ICBwcm9jZWR1cmUoZm9vKSwgcG9pbnRlciA6OiBmdW5jdAorICAgZW5kIHR5 cGUKKyAgIGNsYXNzKEFBKSwgYWxsb2NhdGFibGUgOjogbXlfQUEKKyAgIHR5 cGUoQUEpIDo6IHJlcworIAorICAgYWxsb2NhdGUgKG15X0FBLCBzb3VyY2Ug PSBBQSAoMSwgZm9vKSkKKyAKKyAgIHJlcyA9IG15X0FBJWZ1bmN0ICgpCisg CisgICBpZiAocmVzJWkgLm5lLiAzKSBjYWxsIGFib3J0CisgICBpZiAoLm5v dC5hc3NvY2lhdGVkIChyZXMlZnVuY3QpKSBjYWxsIGFib3J0CisgICBpZiAo bXlfQUElaSAubmUuIDQpIGNhbGwgYWJvcnQKKyAgIGlmIChhc3NvY2lhdGVk IChteV9BQSVmdW5jdCkpIGNhbGwgYWJvcnQKKyAKKyBjb250YWlucworICAg ZnVuY3Rpb24gZm9vKEEpCisgICAgIGNsYXNzKEFBKSwgYWxsb2NhdGFibGUg OjogQQorICAgICB0eXBlKEFBKSBmb28KKyAKKyAgICAgaWYgKC5ub3QuYWxs b2NhdGVkIChBKSkgdGhlbgorICAgICAgIGFsbG9jYXRlIChBLCBzb3VyY2Ug PSBBQSAoMiwgZm9vKSkKKyAgICAgZW5kaWYKKyAKKyAgICAgc2VsZWN0IHR5 cGUgKEEpCisgICAgICAgdHlwZSBpcyAoQUEpCisgICAgICAgICBmb28gPSBB QSAoMywgZm9vKQorICAgICAgICAgQSA9IEFBICg0LCBOVUxMICgpKQorICAg ICBlbmQgc2VsZWN0CisgICBlbmQgZnVuY3Rpb24KKyBlbmQK --089e012955a40c8db50523b84f29--