From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15120 invoked by alias); 12 Jan 2013 11:25:34 -0000 Received: (qmail 15083 invoked by uid 22791); 12 Jan 2013 11:25:32 -0000 X-SWARE-Spam-Status: No, hits=-4.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-vb0-f46.google.com (HELO mail-vb0-f46.google.com) (209.85.212.46) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 12 Jan 2013 11:25:26 +0000 Received: by mail-vb0-f46.google.com with SMTP id b13so2192364vby.19 for ; Sat, 12 Jan 2013 03:25:25 -0800 (PST) MIME-Version: 1.0 Received: by 10.52.156.67 with SMTP id wc3mr84648987vdb.19.1357989925048; Sat, 12 Jan 2013 03:25:25 -0800 (PST) Received: by 10.220.241.212 with HTTP; Sat, 12 Jan 2013 03:25:24 -0800 (PST) Date: Sat, 12 Jan 2013 11:25:00 -0000 Message-ID: Subject: [Patch, fortran] PR54286 - [4.8 Regression] Accepts invalid proc-pointer assignments involving proc-ptr function result From: Paul Richard Thomas To: "fortran@gcc.gnu.org" , gcc-patches , Mikael Morin Content-Type: multipart/mixed; boundary=bcaec53aece217504a04d315ab1e 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: 2013-01/txt/msg00632.txt.bz2 --bcaec53aece217504a04d315ab1e Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1157 Dear All, It is something of an exaggeration to say that this PR is a regession, although it is true that gcc-4.7 gives error messages for the testcase in the correct places. In fact, these messages disappear if IMPLICIT INTEGER (a) at the start of the testcase. The fix ensures that the interfaces are selected and checked symmetrically in gfc_compare_interfaces. The submitted testcase only checks the errors. The other tests in the testsuite adequately check the functionality of procedure pointer assignments. Bootstrapped and regtested on FC17/i86_64 - OK for trunk Cheers Paul 2013-01-12 Paul Thomas PR fortran/54286 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue and rvalue interfaces are presented to gfc_compare_interfaces. Simplify references to interface names by using the symbols themselves. Call gfc_compare_interfaces with s1 and s2 inter- changed to overcome the asymmetry of this function. Do not repeat the check for the presence of s1 and s2. 2013-01-12 Paul Thomas PR fortran/54286 * gfortran.dg/proc_ptr_result_8.f90 : New test. --bcaec53aece217504a04d315ab1e Content-Type: application/octet-stream; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hbuo424r0 Content-length: 5104 SW5kZXg6IGdjYy9mb3J0cmFuL2V4cHIuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CioqKiBnY2MvZm9ydHJhbi9leHByLmMJKHJldmlzaW9uIDE5NTEyMykK LS0tIGdjYy9mb3J0cmFuL2V4cHIuYwkod29ya2luZyBjb3B5KQoqKioqKioq KioqKioqKiogZ2ZjX2NoZWNrX3BvaW50ZXJfYXNzaWduIChnZmNfZXhwciAq bHZhbAoqKiogMzUwNiwzNTEyICoqKioKICAgICAgICBpZiAoY29tcCkKICAJ czEgPSBjb21wLT50cy5pbnRlcmZhY2U7CiAgICAgICAgZWxzZQohIAlzMSA9 IGx2YWx1ZS0+c3ltdHJlZS0+bi5zeW07CiAgCiAgICAgICAgY29tcCA9IGdm Y19nZXRfcHJvY19wdHJfY29tcCAocnZhbHVlKTsKICAgICAgICBpZiAoY29t cCkKLS0tIDM1MDYsMzUxNiAtLS0tCiAgICAgICAgaWYgKGNvbXApCiAgCXMx ID0gY29tcC0+dHMuaW50ZXJmYWNlOwogICAgICAgIGVsc2UKISAJewohIAkg IHMxID0gbHZhbHVlLT5zeW10cmVlLT5uLnN5bTsKISAJICBpZiAoczEtPnRz LmludGVyZmFjZSkKISAJICAgIHMxID0gczEtPnRzLmludGVyZmFjZTsKISAJ fQogIAogICAgICAgIGNvbXAgPSBnZmNfZ2V0X3Byb2NfcHRyX2NvbXAgKHJ2 YWx1ZSk7CiAgICAgICAgaWYgKGNvbXApCioqKioqKioqKioqKioqKiBnZmNf Y2hlY2tfcG9pbnRlcl9hc3NpZ24gKGdmY19leHByICpsdmFsCioqKiAzNTE0 LDM1MjAgKioqKgogIAkgIGlmIChydmFsdWUtPmV4cHJfdHlwZSA9PSBFWFBS X0ZVTkNUSU9OKQogIAkgICAgewogIAkgICAgICBzMiA9IGNvbXAtPnRzLmlu dGVyZmFjZS0+cmVzdWx0OwohIAkgICAgICBuYW1lID0gY29tcC0+dHMuaW50 ZXJmYWNlLT5yZXN1bHQtPm5hbWU7CiAgCSAgICB9CiAgCSAgZWxzZQogIAkg ICAgewotLS0gMzUxOCwzNTI0IC0tLS0KICAJICBpZiAocnZhbHVlLT5leHBy X3R5cGUgPT0gRVhQUl9GVU5DVElPTikKICAJICAgIHsKICAJICAgICAgczIg PSBjb21wLT50cy5pbnRlcmZhY2UtPnJlc3VsdDsKISAJICAgICAgbmFtZSA9 IHMyLT5uYW1lOwogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIHsKKioqKioq KioqKioqKioqIGdmY19jaGVja19wb2ludGVyX2Fzc2lnbiAoZ2ZjX2V4cHIg Kmx2YWwKKioqIDM1MjUsMzU0MCAqKioqCiAgICAgICAgZWxzZSBpZiAocnZh bHVlLT5leHByX3R5cGUgPT0gRVhQUl9GVU5DVElPTikKICAJewogIAkgIHMy ID0gcnZhbHVlLT5zeW10cmVlLT5uLnN5bS0+cmVzdWx0OwohIAkgIG5hbWUg PSBydmFsdWUtPnN5bXRyZWUtPm4uc3ltLT5yZXN1bHQtPm5hbWU7CiAgCX0K ICAgICAgICBlbHNlCiAgCXsKICAJICBzMiA9IHJ2YWx1ZS0+c3ltdHJlZS0+ bi5zeW07CiEgCSAgbmFtZSA9IHJ2YWx1ZS0+c3ltdHJlZS0+bi5zeW0tPm5h bWU7CiAgCX0KICAKISAgICAgICBpZiAoczEgJiYgczIgJiYgIWdmY19jb21w YXJlX2ludGVyZmFjZXMgKHMxLCBzMiwgbmFtZSwgMCwgMSwKISAJCQkJCSAg ICAgICBlcnIsIHNpemVvZihlcnIpLCBOVUxMLCBOVUxMKSkKICAJewogIAkg IGdmY19lcnJvciAoIkludGVyZmFjZSBtaXNtYXRjaCBpbiBwcm9jZWR1cmUg cG9pbnRlciBhc3NpZ25tZW50ICIKICAJCSAgICAgImF0ICVMOiAlcyIsICZy dmFsdWUtPndoZXJlLCBlcnIpOwotLS0gMzUyOSwzNTU4IC0tLS0KICAgICAg ICBlbHNlIGlmIChydmFsdWUtPmV4cHJfdHlwZSA9PSBFWFBSX0ZVTkNUSU9O KQogIAl7CiAgCSAgczIgPSBydmFsdWUtPnN5bXRyZWUtPm4uc3ltLT5yZXN1 bHQ7CiEgCSAgbmFtZSA9IHMyLT5uYW1lOwogIAl9CiAgICAgICAgZWxzZQog IAl7CiAgCSAgczIgPSBydmFsdWUtPnN5bXRyZWUtPm4uc3ltOwohIAkgIG5h bWUgPSBzMi0+bmFtZTsKISAJfQohIAohICAgICAgIGlmIChzMi0+YXR0ci5w cm9jX3BvaW50ZXIgJiYgczItPnRzLmludGVyZmFjZSkKISAJczIgPSBzMi0+ dHMuaW50ZXJmYWNlOwohIAohICAgICAgIGlmIChzMSA9PSBzMiB8fCAhczEg fHwgIXMyKQohIAlyZXR1cm4gU1VDQ0VTUzsKISAKISAgICAgICBpZiAoIWdm Y19jb21wYXJlX2ludGVyZmFjZXMgKHMxLCBzMiwgbmFtZSwgMCwgMSwKISAJ CQkJICAgZXJyLCBzaXplb2YoZXJyKSwgTlVMTCwgTlVMTCkpCiEgCXsKISAJ ICBnZmNfZXJyb3IgKCJJbnRlcmZhY2UgbWlzbWF0Y2ggaW4gcHJvY2VkdXJl IHBvaW50ZXIgYXNzaWdubWVudCAiCiEgCQkgICAgICJhdCAlTDogJXMiLCAm cnZhbHVlLT53aGVyZSwgZXJyKTsKISAJICByZXR1cm4gRkFJTFVSRTsKICAJ fQogIAohICAgICAgIGlmICghZ2ZjX2NvbXBhcmVfaW50ZXJmYWNlcyAoczIs IHMxLCBuYW1lLCAwLCAxLAohIAkJCQkgICBlcnIsIHNpemVvZihlcnIpLCBO VUxMLCBOVUxMKSkKICAJewogIAkgIGdmY19lcnJvciAoIkludGVyZmFjZSBt aXNtYXRjaCBpbiBwcm9jZWR1cmUgcG9pbnRlciBhc3NpZ25tZW50ICIKICAJ CSAgICAgImF0ICVMOiAlcyIsICZydmFsdWUtPndoZXJlLCBlcnIpOwpJbmRl eDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcm9jX3B0cl9yZXN1bHRf OC5mOTAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoqKiogZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9wcm9jX3B0cl9yZXN1bHRfOC5mOTAJKHJldmlzaW9u IDApCi0tLSBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3Byb2NfcHRyX3Jl c3VsdF84LmY5MAkod29ya2luZyBjb3B5KQoqKioqKioqKioqKioqKioKKioq IDAgKioqKgotLS0gMSw0NSAtLS0tCisgISB7IGRnLWRvIGNvbXBpbGUgfQor ICEgVGVzdCBmaXggZm9yIFBSNTQyODYuCisgIQorICEgQ29udHJpYnV0ZWQg YnkgSmFudXMgV2VpbCAgPGphbnVzQGdjYy5nbnUub3JnPgorICEKKyBpbXBs aWNpdCBpbnRlZ2VyIChhKQorIHR5cGUgOjogdAorICAgcHJvY2VkdXJlKGEp LCBwb2ludGVyLCBub3Bhc3MgOjogcAorIGVuZCB0eXBlCisgdHlwZSh0KSA6 OiB4CisgCisgcHJvY2VkdXJlKGlhYnMpLCBwb2ludGVyIDo6IHBwCisgcHJv Y2VkdXJlKGZvbyksIHBvaW50ZXIgOjogcHAxCisgCisgeCVwID0+IGEgICAg ICEgb2sKKyBpZiAoeCVwKDApIC5uZS4gbG9jKGZvbykpIGNhbGwgYWJvcnQK KyBpZiAoeCVwKDEpIC5uZS4gbG9jKGlhYnMpKSBjYWxsIGFib3J0CisgCisg eCVwID0+IGEoMSkgICEgeyBkZy1lcnJvciAiUFJPQ0VEVVJFIFBPSU5URVIg bWlzbWF0Y2ggaW4gZnVuY3Rpb24gcmVzdWx0IiB9CisgCisgcHAgPT4gYSgx KSAgICEgb2sKKyBpZiAocHAoLTk5KSAubmUuIGlhYnMoLTk5KSkgY2FsbCBh Ym9ydAorIAorIHBwMSA9PiBhKDIpICAgISBvaworIGlmIChwcDEoLTk5KSAu bmUuIC1pYWJzKC05OSkpIGNhbGwgYWJvcnQKKyAKKyBwcCA9PiBhICAhIHsg ZGctZXJyb3IgIlBST0NFRFVSRSBQT0lOVEVSIG1pc21hdGNoIGluIGZ1bmN0 aW9uIHJlc3VsdCIgfQorIAorIGNvbnRhaW5zCisgCisgICBmdW5jdGlvbiBh IChjKSByZXN1bHQgKGIpCisgICAgIGludGVnZXIsIGludGVudChpbikgOjog YworICAgICBwcm9jZWR1cmUoaWFicyksIHBvaW50ZXIgOjogYgorICAgICBp ZiAoYyAuZXEuIDEpIHRoZW4KKyAgICAgICBiID0+IGlhYnMKKyAgICAgZWxz ZQorICAgICAgIGIgPT4gZm9vCisgICAgIGVuZCBpZgorICAgZW5kIGZ1bmN0 aW9uCisgCisgICBpbnRlZ2VyIGZ1bmN0aW9uIGZvbyAoYXJnKQorICAgICBp bnRlZ2VyLCBpbnRlbnQgKGluKSA6OiBhcmcKKyAgICAgZm9vID0gLWlhYnMo YXJnKQorICAgZW5kIGZ1bmN0aW9uCisgZW5kCg== --bcaec53aece217504a04d315ab1e--