From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3096 invoked by alias); 4 Jun 2010 23:48:52 -0000 Received: (qmail 3081 invoked by uid 22791); 4 Jun 2010 23:48:52 -0000 X-SWARE-Spam-Status: No, hits=1.1 required=5.0 tests=AWL,BAYES_05,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM X-Spam-Check-By: sourceware.org Received: from mail-ww0-f47.google.com (HELO mail-ww0-f47.google.com) (74.125.82.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 04 Jun 2010 23:48:49 +0000 Received: by wwb34 with SMTP id 34so1410918wwb.20 for ; Fri, 04 Jun 2010 16:48:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.181.140 with SMTP id l12mr218557wem.69.1275695324629; Fri, 04 Jun 2010 16:48:44 -0700 (PDT) Received: by 10.216.5.21 with HTTP; Fri, 4 Jun 2010 16:48:43 -0700 (PDT) In-Reply-To: References: <20100517172329.931B83BE0F@mailhost.lps.ens.fr> <4BF1B5F0.5080201@net-b.de> <4BF1B7A0.5020103@net-b.de> Date: Fri, 04 Jun 2010 23:48:00 -0000 Message-ID: Subject: Re: [Patch, fortran] PR43945 - [OOP] Derived type with GENERIC: resolved to the wrong specific TBP From: Janus Weil To: Tobias Burnus Cc: Paul Richard Thomas , Dominique Dhumieres , fortran , gcc-patches Content-Type: multipart/mixed; boundary=0016e64696e8ab239e04883cf690 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 X-SW-Source: 2010-06/txt/msg00364.txt.bz2 --0016e64696e8ab239e04883cf690 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 103 > The full patch can be found in the attachment. ... which is missing of course. Here it goes. Janus --0016e64696e8ab239e04883cf690 Content-Type: application/octet-stream; name="pr43945_2.diff" Content-Disposition: attachment; filename="pr43945_2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ga1o0qvo0 Content-length: 7853 SW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ2VuZXJpY18yMy5m MDMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nZW5lcmljXzIzLmYwMwkocmV2aXNpb24gMCkKKysrIGdj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ2VuZXJpY18yMy5mMDMJKHJldmlz aW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKyEgeyBkZy1kbyBydW4gfQorISBU ZXN0IHRoZSBmaXggZm9yIFBSNDM5NDUgaW4gd2hpY2ggdGhlIG92ZXItcmlk ZGluZyBvZiAnZG9pdCcgYW5kCishICdnZXRpdCcgaW4gdHlwZSAnZm9vMicg d2FzIG1pc3NlZCBpbiB0aGUgc3BlY2lmaWMgYmluZGluZyB0byAnZG8nIGFu ZCAnZ2V0Jy4KKyEKKyEgQ29udHJpYnV0ZWQgYnkgVG9iaWFzIEJ1cm51cyA8 YnVybnVzQGdjYy5nbnUub3JnPgorISBhbmQgcmVwb3J0ZWQgdG8gY2xmIGJ5 IFNhbHZhdG9yZSBGaWxpcHBvbmUgPHNmaWxpcHBvbmVAdW5pcm9tYTIuaXQ+ CishCittb2R1bGUgZm9vX21vZAorICB0eXBlIGZvbworICAgIGludGVnZXIg OjogaQorICBjb250YWlucworICAgIHByb2NlZHVyZSwgcGFzcyhhKSA6OiBk b2l0CisgICAgcHJvY2VkdXJlLCBwYXNzKGEpIDo6IGdldGl0CisgICAgZ2Vu ZXJpYywgcHVibGljIDo6IGRvICA9PiBkb2l0CisgICAgZ2VuZXJpYywgcHVi bGljIDo6IGdldCA9PiBnZXRpdAorICBlbmQgdHlwZSBmb28KKyAgcHJpdmF0 ZSBkb2l0LGdldGl0Citjb250YWlucworICBzdWJyb3V0aW5lICBkb2l0KGEp CisgICAgY2xhc3MoZm9vKSA6OiBhCisgICAgYSVpID0gMQorICAgIHdyaXRl KCosKikgJ0ZPTyVET0lUIGJhc2UgdmVyc2lvbicKKyAgZW5kIHN1YnJvdXRp bmUgZG9pdAorICBmdW5jdGlvbiBnZXRpdChhKSByZXN1bHQocmVzKQorICAg IGNsYXNzKGZvbykgOjogYQorICAgIGludGVnZXIgOjogcmVzCisgICAgcmVz ID0gYSVpCisgIGVuZCBmdW5jdGlvbiBnZXRpdAorZW5kIG1vZHVsZSBmb29f bW9kCisKK21vZHVsZSBmb28yX21vZAorICB1c2UgZm9vX21vZAorICB0eXBl LCBleHRlbmRzKGZvbykgOjogZm9vMgorICAgIGludGVnZXIgOjogagorICBj b250YWlucworICAgIHByb2NlZHVyZSwgcGFzcyhhKSA6OiBkb2l0ICA9PiBk b2l0MgorICAgIHByb2NlZHVyZSwgcGFzcyhhKSA6OiBnZXRpdCA9PiBnZXRp dDIKKyEhJCAgICBnZW5lcmljLCBwdWJsaWMgOjogZG8gID0+IGRvaXQKKyEh JCAgICBnZW5lcmljLCBwdWJsaWMgOjogZ2V0ID0+IGdldGl0CisgIGVuZCB0 eXBlIGZvbzIKKyAgcHJpdmF0ZSBkb2l0MiwgZ2V0aXQyCisKK2NvbnRhaW5z CisKKyAgc3Vicm91dGluZSAgZG9pdDIoYSkKKyAgICBjbGFzcyhmb28yKSA6 OiBhCisgICAgYSVpID0gMgorICAgIGElaiA9IDMKKyAgZW5kIHN1YnJvdXRp bmUgZG9pdDIKKyAgZnVuY3Rpb24gZ2V0aXQyKGEpIHJlc3VsdChyZXMpCisg ICAgY2xhc3MoZm9vMikgOjogYQorICAgIGludGVnZXIgOjogcmVzCisgICAg cmVzID0gYSVqCisgIGVuZCBmdW5jdGlvbiBnZXRpdDIKK2VuZCBtb2R1bGUg Zm9vMl9tb2QKKworcHJvZ3JhbSB0ZXN0ZDE1CisgIHVzZSBmb28yX21vZAor ICB0eXBlKGZvbzIpIDo6IGFmMgorCisgIGNhbGwgYWYyJWRvKCkKKyAgaWYg KGFmMiVpIC5uZS4gMikgY2FsbCBhYm9ydAorICBpZiAoYWYyJWdldCgpIC5u ZS4gMykgY2FsbCBhYm9ydAorCitlbmQgcHJvZ3JhbSB0ZXN0ZDE1CisKKyEg eyBkZy1maW5hbCB7IGNsZWFudXAtbW9kdWxlcyAiZm9vX21vZCBmb28yX21v ZCIgfSB9CkluZGV4OiBnY2MvZm9ydHJhbi9yZXNvbHZlLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCShyZXZp c2lvbiAxNjAzMDApCisrKyBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHdvcmtp bmcgY29weSkKQEAgLTUxNjAsNiArNTE2MCw0MyBAQCByZXNvbHZlX3R5cGVi b3VuZF9zdGF0aWMgKGdmY19leHByKiBlLCBnZmNfc3ltdHJlZQogfQogCiAK Ky8qIEdldCB0aGUgdWx0aW1hdGUgZGVjbGFyZWQgdHlwZSBmcm9tIGFuIGV4 cHJlc3Npb24uICBJbiBhZGRpdGlvbiwKKyAgIHJldHVybiB0aGUgbGFzdCBj bGFzcy9kZXJpdmVkIHR5cGUgcmVmZXJlbmNlIGFuZCB0aGUgY29weSBvZiB0 aGUKKyAgIHJlZmVyZW5jZSBsaXN0LiAgKi8KK3N0YXRpYyBnZmNfc3ltYm9s KgorZ2V0X2RlY2xhcmVkX2Zyb21fZXhwciAoZ2ZjX3JlZiAqKmNsYXNzX3Jl ZiwgZ2ZjX3JlZiAqKm5ld19yZWYsCisJCQlnZmNfZXhwciAqZSkKK3sKKyAg Z2ZjX3N5bWJvbCAqZGVjbGFyZWQ7CisgIGdmY19yZWYgKnJlZjsKKworICBk ZWNsYXJlZCA9IE5VTEw7CisgIGlmIChjbGFzc19yZWYpCisgICAgKmNsYXNz X3JlZiA9IE5VTEw7CisgIGlmIChuZXdfcmVmKQorICAgICpuZXdfcmVmID0g Z2ZjX2NvcHlfcmVmIChlLT5yZWYpOworCisgIGZvciAocmVmID0gZS0+cmVm OyByZWY7IHJlZiA9IHJlZi0+bmV4dCkKKyAgICB7CisgICAgICBpZiAocmVm LT50eXBlICE9IFJFRl9DT01QT05FTlQpCisJY29udGludWU7CisKKyAgICAg IGlmIChyZWYtPnUuYy5jb21wb25lbnQtPnRzLnR5cGUgPT0gQlRfQ0xBU1MK KwkgICAgfHwgcmVmLT51LmMuY29tcG9uZW50LT50cy50eXBlID09IEJUX0RF UklWRUQpCisJeworCSAgZGVjbGFyZWQgPSByZWYtPnUuYy5jb21wb25lbnQt PnRzLnUuZGVyaXZlZDsKKwkgIGlmIChjbGFzc19yZWYpCisJICAgICpjbGFz c19yZWYgPSByZWY7CisJfQorICAgIH0KKworICBpZiAoZGVjbGFyZWQgPT0g TlVMTCkKKyAgICBkZWNsYXJlZCA9IGUtPnN5bXRyZWUtPm4uc3ltLT50cy51 LmRlcml2ZWQ7CisKKyAgcmV0dXJuIGRlY2xhcmVkOworfQorCisKIC8qIEdp dmVuIGFuIEVYUFJfQ09NUENBTEwgY2FsbGluZyBhIEdFTkVSSUMgdHlwZWJv dW5kIHByb2NlZHVyZSwgZmlndXJlIG91dAogICAgd2hpY2ggb2YgdGhlIHNw ZWNpZmljIGJpbmRpbmdzIChpZiBhbnkpIG1hdGNoZXMgdGhlIGFyZ2xpc3Qg YW5kIHRyYW5zZm9ybQogICAgdGhlIGV4cHJlc3Npb24gaW50byBhIGNhbGwg b2YgdGhhdCBiaW5kaW5nLiAgKi8KQEAgLTUxNjksNiArNTIwNiw4IEBAIHJl c29sdmVfdHlwZWJvdW5kX2dlbmVyaWNfY2FsbCAoZ2ZjX2V4cHIqIGUsIGNv bnN0CiB7CiAgIGdmY190eXBlYm91bmRfcHJvYyogZ2VucHJvYzsKICAgY29u c3QgY2hhciogZ2VubmFtZTsKKyAgZ2ZjX3N5bXRyZWUgKnN0OworICBnZmNf c3ltYm9sICpkZXJpdmVkOwogCiAgIGdjY19hc3NlcnQgKGUtPmV4cHJfdHlw ZSA9PSBFWFBSX0NPTVBDQUxMKTsKICAgZ2VubmFtZSA9IGUtPnZhbHVlLmNv bXBjYWxsLm5hbWU7CkBAIC01MjM2LDYgKzUyNzUsMTkgQEAgcmVzb2x2ZV90 eXBlYm91bmRfZ2VuZXJpY19jYWxsIChnZmNfZXhwciogZSwgY29uc3QKICAg cmV0dXJuIEZBSUxVUkU7CiAKIHN1Y2Nlc3M6CisgIC8qIE1ha2Ugc3VyZSB0 aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IHNwZWNpZmljIGluc3RhbmNlIGZvciB0 aGUgbmFtZS4gICovCisgIGdlbm5hbWUgPSBlLT52YWx1ZS5jb21wY2FsbC50 YnAtPnUuc3BlY2lmaWMtPm5hbWU7CisKKyAgLyogSXMgdGhlIHN5bXRyZWUg bmFtZSBhICJ1bmlxdWUgbmFtZSIuICAqLworICBpZiAoKmdlbm5hbWUgPT0g J0AnKQorICAgIGdlbm5hbWUgPSBlLT52YWx1ZS5jb21wY2FsbC50YnAtPnUu c3BlY2lmaWMtPm4uc3ltLT5uYW1lOworCisgIGRlcml2ZWQgPSBnZXRfZGVj bGFyZWRfZnJvbV9leHByIChOVUxMLCBOVUxMLCBlKTsKKworICBzdCA9IGdm Y19maW5kX3R5cGVib3VuZF9wcm9jIChkZXJpdmVkLCBOVUxMLCBnZW5uYW1l LCBmYWxzZSwgJmUtPndoZXJlKTsKKyAgaWYgKHN0KQorICAgIGUtPnZhbHVl LmNvbXBjYWxsLnRicCA9IHN0LT5uLnRiOworCiAgIHJldHVybiBTVUNDRVNT OwogfQogCkBAIC01MzQzLDM5ICs1Mzk1LDcgQEAgcmVzb2x2ZV9jb21wY2Fs bCAoZ2ZjX2V4cHIqIGUsIGNvbnN0IGNoYXIgKipuYW1lKQogfQogCiAKLS8q IEdldCB0aGUgdWx0aW1hdGUgZGVjbGFyZWQgdHlwZSBmcm9tIGFuIGV4cHJl c3Npb24uICBJbiBhZGRpdGlvbiwKLSAgIHJldHVybiB0aGUgbGFzdCBjbGFz cy9kZXJpdmVkIHR5cGUgcmVmZXJlbmNlIGFuZCB0aGUgY29weSBvZiB0aGUK LSAgIHJlZmVyZW5jZSBsaXN0LiAgKi8KLXN0YXRpYyBnZmNfc3ltYm9sKgot Z2V0X2RlY2xhcmVkX2Zyb21fZXhwciAoZ2ZjX3JlZiAqKmNsYXNzX3JlZiwg Z2ZjX3JlZiAqKm5ld19yZWYsCi0JCQlnZmNfZXhwciAqZSkKLXsKLSAgZ2Zj X3N5bWJvbCAqZGVjbGFyZWQ7Ci0gIGdmY19yZWYgKnJlZjsKIAotICBkZWNs YXJlZCA9IE5VTEw7Ci0gICpjbGFzc19yZWYgPSBOVUxMOwotICAqbmV3X3Jl ZiA9IGdmY19jb3B5X3JlZiAoZS0+cmVmKTsKLSAgZm9yIChyZWYgPSAqbmV3 X3JlZjsgcmVmOyByZWYgPSByZWYtPm5leHQpCi0gICAgewotICAgICAgaWYg KHJlZi0+dHlwZSAhPSBSRUZfQ09NUE9ORU5UKQotCWNvbnRpbnVlOwotCi0g ICAgICBpZiAocmVmLT51LmMuY29tcG9uZW50LT50cy50eXBlID09IEJUX0NM QVNTCi0JICAgIHx8IHJlZi0+dS5jLmNvbXBvbmVudC0+dHMudHlwZSA9PSBC VF9ERVJJVkVEKQotCXsKLQkgIGRlY2xhcmVkID0gcmVmLT51LmMuY29tcG9u ZW50LT50cy51LmRlcml2ZWQ7Ci0JICAqY2xhc3NfcmVmID0gcmVmOwotCX0K LSAgICB9Ci0KLSAgaWYgKGRlY2xhcmVkID09IE5VTEwpCi0gICAgZGVjbGFy ZWQgPSBlLT5zeW10cmVlLT5uLnN5bS0+dHMudS5kZXJpdmVkOwotCi0gIHJl dHVybiBkZWNsYXJlZDsKLX0KLQotCiAvKiBSZXNvbHZlIGEgdHlwZWJvdW5k IGZ1bmN0aW9uLCBvciAnbWV0aG9kJy4gRmlyc3Qgc2VwYXJhdGUgYWxsCiAg ICB0aGUgbm9uLUNMQVNTIHJlZmVyZW5jZXMgYnkgY2FsbGluZyByZXNvbHZl X2NvbXBjYWxsIGRpcmVjdGx5LiAgKi8KIApAQCAtNTQyMywxMSArNTQ0Myw4 IEBAIHJlc29sdmVfdHlwZWJvdW5kX2Z1bmN0aW9uIChnZmNfZXhwciogZSkK ICAgZS0+dmFsdWUuZnVuY3Rpb24uZXN5bSA9IE5VTEw7CiAgIGUtPnN5bXRy ZWUgPSBzdDsKIAotICBpZiAoY2xhc3NfcmVmKSAgCi0gICAgewotICAgICAg Z2ZjX2ZyZWVfcmVmX2xpc3QgKGNsYXNzX3JlZi0+bmV4dCk7Ci0gICAgICBl LT5yZWYgPSBuZXdfcmVmOwotICAgIH0KKyAgaWYgKG5ld19yZWYpICAKKyAg ICBlLT5yZWYgPSBuZXdfcmVmOwogCiAgIC8qICckdnB0cicgcG9pbnRzIHRv IHRoZSB2dGFiLCB3aGljaCBjb250YWlucyB0aGUgcHJvY2VkdXJlIHBvaW50 ZXJzLiAgKi8KICAgZ2ZjX2FkZF9jb21wb25lbnRfcmVmIChlLCAiJHZwdHIi KTsKQEAgLTU0OTYsMTEgKzU1MTMsOCBAQCByZXNvbHZlX3R5cGVib3VuZF9z dWJyb3V0aW5lIChnZmNfY29kZSAqY29kZSkKICAgY29kZS0+ZXhwcjEtPnZh bHVlLmZ1bmN0aW9uLmVzeW0gPSBOVUxMOwogICBjb2RlLT5leHByMS0+c3lt dHJlZSA9IHN0OwogCi0gIGlmIChjbGFzc19yZWYpICAKLSAgICB7Ci0gICAg ICBnZmNfZnJlZV9yZWZfbGlzdCAoY2xhc3NfcmVmLT5uZXh0KTsKLSAgICAg IGNvZGUtPmV4cHIxLT5yZWYgPSBuZXdfcmVmOwotICAgIH0KKyAgaWYgKG5l d19yZWYpCisgICAgY29kZS0+ZXhwcjEtPnJlZiA9IG5ld19yZWY7CiAKICAg LyogJyR2cHRyJyBwb2ludHMgdG8gdGhlIHZ0YWIsIHdoaWNoIGNvbnRhaW5z IHRoZSBwcm9jZWR1cmUgcG9pbnRlcnMuICAqLwogICBnZmNfYWRkX2NvbXBv bmVudF9yZWYgKGNvZGUtPmV4cHIxLCAiJHZwdHIiKTsK --0016e64696e8ab239e04883cf690--