From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11559 invoked by alias); 31 Jul 2012 09:51:05 -0000 Received: (qmail 11540 invoked by uid 22791); 31 Jul 2012 09:51:04 -0000 X-SWARE-Spam-Status: No, hits=-4.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-yx0-f175.google.com (HELO mail-yx0-f175.google.com) (209.85.213.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 31 Jul 2012 09:50:51 +0000 Received: by yenl13 with SMTP id l13so5882374yen.20 for ; Tue, 31 Jul 2012 02:50:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.101.134.32 with SMTP id l32mr4070052ann.12.1343728250367; Tue, 31 Jul 2012 02:50:50 -0700 (PDT) Received: by 10.236.103.161 with HTTP; Tue, 31 Jul 2012 02:50:50 -0700 (PDT) Date: Tue, 31 Jul 2012 09:59:00 -0000 Message-ID: Subject: [Patch, Fortran] PR 42418: PROCEDURE: Rejects interface which is both specific and generic procedure From: Janus Weil To: gfortran , gcc-patches Content-Type: multipart/mixed; boundary=001636c927c509afd404c61d1ddf 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: 2012-07/txt/msg01542.txt.bz2 --001636c927c509afd404c61d1ddf Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1918 Hi all, here is a patch which does several things: 1) It fixes the original problem in the PR (cf. comments 0 and 6) by adding code which checks if a generic interface has a specific procedure of the same name (see resolve_procedure_interface). 2) It fixes other problems found along the way (cf. comment 7), which are all due to the fact that the checks for interface declarations in PROCEDURE statements came too early (checks for generics, statement functions and intrinsics are moved from "match_procedure_interface" to "resolve_procedure_interface"). For the intrinsics we do the same trick as for PR51081, by setting the flavor at parsing stage and later setting the INTRINSIC attribute at resolution stage. 3) It does minor cleanup related to "gfc_is_intrinsic", by moving some checks into the routine, which were typically done before calling the routine in a several places. (This is also related to the recent patch for PR51081.) Note that 'use_assoc' is not sufficient to identify a routine as non-intrinsic (apparently this was wrongly assumed in some cases). The patch was regtested successfully on x86_64-unknown-linux-gnu. Ok for trunk? Cheers, Janus 2012-07-31 Janus Weil PR fortran/42418 * decl.c (match_procedure_interface): Move some checks to 'resolve_procedure_interface'. Set flavor if appropriate. * expr.c (gfc_check_pointer_assign): Cleanup of 'gfc_is_intrinsic'. * intrinsic.c (gfc_is_intrinsic): Additional checks for attributes which identify a procedure as being non-intrinsic. * resolve.c (resolve_procedure_interface): Checks moved here from 'match_procedure_interface'. Minor cleanup. (resolve_formal_arglist,resolve_symbol): Cleanup of 'resolve_procedure_interface' (resolve_actual_arglist,is_external_proc): Cleanup of 'gfc_is_intrinsic'. 2012-07-31 Janus Weil PR fortran/42418 * gfortran.dg/proc_decl_29.f90: New. --001636c927c509afd404c61d1ddf Content-Type: application/octet-stream; name="pr42418_v4.diff" Content-Disposition: attachment; filename="pr42418_v4.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h5asyssj0 Content-length: 11107 SW5kZXg6IGdjYy9mb3J0cmFuL2ludHJpbnNpYy5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdjYy9mb3J0cmFuL2ludHJpbnNpYy5jCShyZXZpc2lv biAxODk5ODQpCisrKyBnY2MvZm9ydHJhbi9pbnRyaW5zaWMuYwkod29ya2lu ZyBjb3B5KQpAQCAtOTAyLDkgKzkwMiw5IEBAIGdmY19pbnRyaW5zaWNfYWN0 dWFsX29rIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBiCiB9CiAKIAotLyog R2l2ZW4gYSBzeW1ib2wsIGZpbmQgb3V0IGlmIGl0IGlzIChhbmQgaXMgdG8g YmUgdHJlYXRlZCkgYW4gaW50cmluc2ljLiAgSWYKLSAgIGl0J3MgbmFtZSBy ZWZlcnMgdG8gYW4gaW50cmluc2ljIGJ1dCB0aGlzIGludHJpbnNpYyBpcyBu b3QgaW5jbHVkZWQgaW4gdGhlCi0gICBzZWxlY3RlZCBzdGFuZGFyZCwgdGhp cyByZXR1cm5zIEZBTFNFIGFuZCBzZXRzIHRoZSBzeW1ib2wncyBleHRlcm5h bAorLyogR2l2ZW4gYSBzeW1ib2wsIGZpbmQgb3V0IGlmIGl0IGlzIChhbmQg aXMgdG8gYmUgdHJlYXRlZCBhcykgYW4gaW50cmluc2ljLgorICAgSWYgaXRz IG5hbWUgcmVmZXJzIHRvIGFuIGludHJpbnNpYywgYnV0IHRoaXMgaW50cmlu c2ljIGlzIG5vdCBpbmNsdWRlZCBpbgorICAgdGhlIHNlbGVjdGVkIHN0YW5k YXJkLCB0aGlzIHJldHVybnMgRkFMU0UgYW5kIHNldHMgdGhlIHN5bWJvbCdz IGV4dGVybmFsCiAgICBhdHRyaWJ1dGUuICAqLwogCiBib29sCkBAIC05MTMs MTAgKzkxMywxMyBAQCBnZmNfaXNfaW50cmluc2ljIChnZmNfc3ltYm9sKiBz eW0sIGludCBzdWJyb3V0aW5lXwogICBnZmNfaW50cmluc2ljX3N5bSogaXN5 bTsKICAgY29uc3QgY2hhciogc3ltc3RkOwogCi0gIC8qIElmIElOVFJJTlNJ Qy9FWFRFUk5BTCBzdGF0ZSBpcyBhbHJlYWR5IGtub3duLCByZXR1cm4uICAq LworICAvKiBJZiBJTlRSSU5TSUMgYXR0cmlidXRlIGlzIGFscmVhZHkga25v d24sIHJldHVybi4gICovCiAgIGlmIChzeW0tPmF0dHIuaW50cmluc2ljKQog ICAgIHJldHVybiB0cnVlOwotICBpZiAoc3ltLT5hdHRyLmV4dGVybmFsKQor CisgIC8qIENoZWNrIGZvciBhdHRyaWJ1dGVzIHdoaWNoIHByZXZlbnQgdGhl IHN5bWJvbCBmcm9tIGJlaW5nIElOVFJJTlNJQy4gICovCisgIGlmIChzeW0t PmF0dHIuZXh0ZXJuYWwgfHwgc3ltLT5hdHRyLmNvbnRhaW5lZAorICAgICAg fHwgc3ltLT5hdHRyLmlmX3NvdXJjZSA9PSBJRlNSQ19JRkJPRFkpCiAgICAg cmV0dXJuIGZhbHNlOwogCiAgIGlmIChzdWJyb3V0aW5lX2ZsYWcpCkluZGV4 OiBnY2MvZm9ydHJhbi9kZWNsLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL2ZvcnRyYW4vZGVjbC5jCShyZXZpc2lvbiAxODk5ODQpCisrKyBn Y2MvZm9ydHJhbi9kZWNsLmMJKHdvcmtpbmcgY29weSkKQEAgLTQ3OTIsNDEg KzQ3OTIsMjAgQEAgbWF0Y2hfcHJvY2VkdXJlX2ludGVyZmFjZSAoZ2ZjX3N5 bWJvbCAqKnByb2NfaWYpCiAgIGdmY19jdXJyZW50X25zID0gb2xkX25zOwog ICAqcHJvY19pZiA9IHN0LT5uLnN5bTsKIAotICAvKiBWYXJpb3VzIGludGVy ZmFjZSBjaGVja3MuICAqLwogICBpZiAoKnByb2NfaWYpCiAgICAgewogICAg ICAgKCpwcm9jX2lmKS0+cmVmcysrOwogICAgICAgLyogUmVzb2x2ZSBpbnRl cmZhY2UgaWYgcG9zc2libGUuIFRoYXQgd2F5LCBhdHRyLnByb2NlZHVyZSBp cyBvbmx5IHNldAogCSBpZiBpdCBpcyBkZWNsYXJlZCBieSBhIGxhdGVyIHBy b2NlZHVyZS1kZWNsYXJhdGlvbi1zdG10LCB3aGljaCBpcwotCSBpbnZhbGlk IHBlciBDMTIxMi4gICovCisJIGludmFsaWQgcGVyIEYwODpDMTIxNiAoY2Yu IHJlc29sdmVfcHJvY2VkdXJlX2ludGVyZmFjZSkuICAqLwogICAgICAgd2hp bGUgKCgqcHJvY19pZiktPnRzLmludGVyZmFjZSkKIAkqcHJvY19pZiA9ICgq cHJvY19pZiktPnRzLmludGVyZmFjZTsKIAotICAgICAgaWYgKCgqcHJvY19p ZiktPmdlbmVyaWMpCi0JewotCSAgZ2ZjX2Vycm9yICgiSW50ZXJmYWNlICcl cycgYXQgJUMgbWF5IG5vdCBiZSBnZW5lcmljIiwKLQkJICAgICAoKnByb2Nf aWYpLT5uYW1lKTsKLQkgIHJldHVybiBNQVRDSF9FUlJPUjsKLQl9Ci0gICAg ICBpZiAoKCpwcm9jX2lmKS0+YXR0ci5wcm9jID09IFBST0NfU1RfRlVOQ1RJ T04pCi0JewotCSAgZ2ZjX2Vycm9yICgiSW50ZXJmYWNlICclcycgYXQgJUMg bWF5IG5vdCBiZSBhIHN0YXRlbWVudCBmdW5jdGlvbiIsCi0JCSAgICAgKCpw cm9jX2lmKS0+bmFtZSk7Ci0JICByZXR1cm4gTUFUQ0hfRVJST1I7Ci0JfQot ICAgICAgLyogSGFuZGxlIGludHJpbnNpYyBwcm9jZWR1cmVzLiAgKi8KLSAg ICAgIGlmICghKCgqcHJvY19pZiktPmF0dHIuZXh0ZXJuYWwgfHwgKCpwcm9j X2lmKS0+YXR0ci51c2VfYXNzb2MKLQkgICAgfHwgKCpwcm9jX2lmKS0+YXR0 ci5pZl9zb3VyY2UgPT0gSUZTUkNfSUZCT0RZKQotCSAgJiYgKGdmY19pc19p bnRyaW5zaWMgKCgqcHJvY19pZiksIDAsIGdmY19jdXJyZW50X2xvY3VzKQot CSAgICAgIHx8IGdmY19pc19pbnRyaW5zaWMgKCgqcHJvY19pZiksIDEsIGdm Y19jdXJyZW50X2xvY3VzKSkpCi0JKCpwcm9jX2lmKS0+YXR0ci5pbnRyaW5z aWMgPSAxOwotICAgICAgaWYgKCgqcHJvY19pZiktPmF0dHIuaW50cmluc2lj Ci0JICAmJiAhZ2ZjX2ludHJpbnNpY19hY3R1YWxfb2sgKCgqcHJvY19pZikt Pm5hbWUsIDApKQotCXsKLQkgIGdmY19lcnJvciAoIkludHJpbnNpYyBwcm9j ZWR1cmUgJyVzJyBub3QgYWxsb3dlZCAiCi0JCSAgICAiaW4gUFJPQ0VEVVJF IHN0YXRlbWVudCBhdCAlQyIsICgqcHJvY19pZiktPm5hbWUpOwotCSAgcmV0 dXJuIE1BVENIX0VSUk9SOwotCX0KKyAgICAgIGlmICgoKnByb2NfaWYpLT5h dHRyLmZsYXZvciA9PSBGTF9VTktOT1dOCisJICAmJiAoKnByb2NfaWYpLT50 cy50eXBlID09IEJUX1VOS05PV04KKwkgICYmIGdmY19hZGRfZmxhdm9yICgm KCpwcm9jX2lmKS0+YXR0ciwgRkxfUFJPQ0VEVVJFLAorCQkJICAgICAgKCpw cm9jX2lmKS0+bmFtZSwgTlVMTCkgPT0gRkFJTFVSRSkKKwlyZXR1cm4gTUFU Q0hfRVJST1I7CiAgICAgfQogCiBnb3RfdHM6CkluZGV4OiBnY2MvZm9ydHJh bi9leHByLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2ZvcnRy YW4vZXhwci5jCShyZXZpc2lvbiAxODk5ODUpCisrKyBnY2MvZm9ydHJhbi9l eHByLmMJKHdvcmtpbmcgY29weSkKQEAgLTM0MjYsOCArMzQyNiw2IEBAIGdm Y19jaGVja19wb2ludGVyX2Fzc2lnbiAoZ2ZjX2V4cHIgKmx2YWx1ZSwgZ2Zj X2V4CiAgICAgICAJICAvKiBDaGVjayBmb3IgaW50cmluc2ljcy4gICovCiAJ ICBnZmNfc3ltYm9sICpzeW0gPSBydmFsdWUtPnN5bXRyZWUtPm4uc3ltOwog CSAgaWYgKCFzeW0tPmF0dHIuaW50cmluc2ljCi0JICAgICAgJiYgIShzeW0t PmF0dHIuY29udGFpbmVkIHx8IHN5bS0+YXR0ci51c2VfYXNzb2MKLQkJICAg fHwgc3ltLT5hdHRyLmV4dGVybmFsIHx8IHN5bS0+YXR0ci5pZl9zb3VyY2Ug PT0gSUZTUkNfSUZCT0RZKQogCSAgICAgICYmIChnZmNfaXNfaW50cmluc2lj IChzeW0sIDAsIHN5bS0+ZGVjbGFyZWRfYXQpCiAJCSAgfHwgZ2ZjX2lzX2lu dHJpbnNpYyAoc3ltLCAxLCBzeW0tPmRlY2xhcmVkX2F0KSkpCiAJICAgIHsK SW5kZXg6IGdjYy9mb3J0cmFuL3Jlc29sdmUuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHJldmlzaW9uIDE4 OTk4NSkKKysrIGdjYy9mb3J0cmFuL3Jlc29sdmUuYwkod29ya2luZyBjb3B5 KQpAQCAtMTQ2LDI0ICsxNDYsNTggQEAgc3RhdGljIHZvaWQgcmVzb2x2ZV9z eW1ib2wgKGdmY19zeW1ib2wgKnN5bSk7CiBzdGF0aWMgZ2ZjX3RyeQogcmVz b2x2ZV9wcm9jZWR1cmVfaW50ZXJmYWNlIChnZmNfc3ltYm9sICpzeW0pCiB7 Ci0gIGlmIChzeW0tPnRzLmludGVyZmFjZSA9PSBzeW0pCisgIGdmY19zeW1i b2wgKmlmYyA9IHN5bS0+dHMuaW50ZXJmYWNlOworCisgIGlmICghaWZjKQor ICAgIHJldHVybiBTVUNDRVNTOworCisgIC8qIFNldmVyYWwgY2hlY2tzIGZv ciBGMDg6QzEyMTYuICAqLworICBpZiAoaWZjID09IHN5bSkKICAgICB7CiAg ICAgICBnZmNfZXJyb3IgKCJQUk9DRURVUkUgJyVzJyBhdCAlTCBtYXkgbm90 IGJlIHVzZWQgYXMgaXRzIG93biBpbnRlcmZhY2UiLAogCQkgc3ltLT5uYW1l LCAmc3ltLT5kZWNsYXJlZF9hdCk7CiAgICAgICByZXR1cm4gRkFJTFVSRTsK ICAgICB9Ci0gIGlmIChzeW0tPnRzLmludGVyZmFjZS0+YXR0ci5wcm9jZWR1 cmUpCisgIGlmIChpZmMtPmF0dHIucHJvY2VkdXJlKQogICAgIHsKICAgICAg IGdmY19lcnJvciAoIkludGVyZmFjZSAnJXMnLCB1c2VkIGJ5IHByb2NlZHVy ZSAnJXMnIGF0ICVMLCBpcyBkZWNsYXJlZCAiCi0JCSAiaW4gYSBsYXRlciBQ Uk9DRURVUkUgc3RhdGVtZW50Iiwgc3ltLT50cy5pbnRlcmZhY2UtPm5hbWUs CisJCSAiaW4gYSBsYXRlciBQUk9DRURVUkUgc3RhdGVtZW50IiwgaWZjLT5u YW1lLAogCQkgc3ltLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7CiAgICAg ICByZXR1cm4gRkFJTFVSRTsKICAgICB9CisgIGlmIChpZmMtPmdlbmVyaWMp CisgICAgeworICAgICAgLyogRm9yIGdlbmVyaWMgaW50ZXJmYWNlcywgY2hl Y2sgaWYgdGhlcmUgaXMKKwkgYSBzcGVjaWZpYyBwcm9jZWR1cmUgd2l0aCB0 aGUgc2FtZSBuYW1lLiAgKi8KKyAgICAgIGdmY19pbnRlcmZhY2UgKmdlbiA9 IGlmYy0+Z2VuZXJpYzsKKyAgICAgIHdoaWxlIChnZW4gJiYgc3RyY21wIChn ZW4tPnN5bS0+bmFtZSwgaWZjLT5uYW1lKSAhPSAwKQorCWdlbiA9IGdlbi0+ bmV4dDsKKyAgICAgIGlmICghZ2VuKQorCXsKKwkgIGdmY19lcnJvciAoIklu dGVyZmFjZSAnJXMnIGF0ICVMIG1heSBub3QgYmUgZ2VuZXJpYyIsCisJCSAg ICAgaWZjLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7CisJICByZXR1cm4g RkFJTFVSRTsKKwl9CisgICAgfQorICBpZiAoaWZjLT5hdHRyLnByb2MgPT0g UFJPQ19TVF9GVU5DVElPTikKKyAgICB7CisgICAgICBnZmNfZXJyb3IgKCJJ bnRlcmZhY2UgJyVzJyBhdCAlTCBtYXkgbm90IGJlIGEgc3RhdGVtZW50IGZ1 bmN0aW9uIiwKKwkJIGlmYy0+bmFtZSwgJnN5bS0+ZGVjbGFyZWRfYXQpOwor ICAgICAgcmV0dXJuIEZBSUxVUkU7CisgICAgfQorICBpZiAoZ2ZjX2lzX2lu dHJpbnNpYyAoaWZjLCAwLCBpZmMtPmRlY2xhcmVkX2F0KQorICAgICAgfHwg Z2ZjX2lzX2ludHJpbnNpYyAoaWZjLCAxLCBpZmMtPmRlY2xhcmVkX2F0KSkK KyAgICBpZmMtPmF0dHIuaW50cmluc2ljID0gMTsKKyAgaWYgKGlmYy0+YXR0 ci5pbnRyaW5zaWMgJiYgIWdmY19pbnRyaW5zaWNfYWN0dWFsX29rIChpZmMt Pm5hbWUsIDApKQorICAgIHsKKyAgICAgIGdmY19lcnJvciAoIkludHJpbnNp YyBwcm9jZWR1cmUgJyVzJyBub3QgYWxsb3dlZCBpbiAiCisJCSAiUFJPQ0VE VVJFIHN0YXRlbWVudCBhdCAlTCIsIGlmYy0+bmFtZSwgJnN5bS0+ZGVjbGFy ZWRfYXQpOworICAgICAgcmV0dXJuIEZBSUxVUkU7CisgICAgfQogCiAgIC8q IEdldCB0aGUgYXR0cmlidXRlcyBmcm9tIHRoZSBpbnRlcmZhY2UgKG5vdyBy ZXNvbHZlZCkuICAqLwotICBpZiAoc3ltLT50cy5pbnRlcmZhY2UtPmF0dHIu aWZfc291cmNlIHx8IHN5bS0+dHMuaW50ZXJmYWNlLT5hdHRyLmludHJpbnNp YykKKyAgaWYgKGlmYy0+YXR0ci5pZl9zb3VyY2UgfHwgaWZjLT5hdHRyLmlu dHJpbnNpYykKICAgICB7Ci0gICAgICBnZmNfc3ltYm9sICppZmMgPSBzeW0t PnRzLmludGVyZmFjZTsKICAgICAgIHJlc29sdmVfc3ltYm9sIChpZmMpOwog CiAgICAgICBpZiAoaWZjLT5hdHRyLmludHJpbnNpYykKQEAgLTIxMiwxMCAr MjQ2LDEwIEBAIHJlc29sdmVfcHJvY2VkdXJlX2ludGVyZmFjZSAoZ2ZjX3N5 bWJvbCAqc3ltKQogCSAgICByZXR1cm4gRkFJTFVSRTsKIAl9CiAgICAgfQot ICBlbHNlIGlmIChzeW0tPnRzLmludGVyZmFjZS0+bmFtZVswXSAhPSAnXDAn KQorICBlbHNlIGlmIChpZmMtPm5hbWVbMF0gIT0gJ1wwJykKICAgICB7CiAg ICAgICBnZmNfZXJyb3IgKCJJbnRlcmZhY2UgJyVzJyBvZiBwcm9jZWR1cmUg JyVzJyBhdCAlTCBtdXN0IGJlIGV4cGxpY2l0IiwKLQkJIHN5bS0+dHMuaW50 ZXJmYWNlLT5uYW1lLCBzeW0tPm5hbWUsICZzeW0tPmRlY2xhcmVkX2F0KTsK KwkJIGlmYy0+bmFtZSwgc3ltLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7 CiAgICAgICByZXR1cm4gRkFJTFVSRTsKICAgICB9CiAKQEAgLTI3Myw5ICsz MDcsOSBAQCByZXNvbHZlX2Zvcm1hbF9hcmdsaXN0IChnZmNfc3ltYm9sICpw cm9jKQogCQkgICAgICAgJnByb2MtPmRlY2xhcmVkX2F0KTsKIAkgIGNvbnRp bnVlOwogCX0KLSAgICAgIGVsc2UgaWYgKHN5bS0+YXR0ci5wcm9jZWR1cmUg JiYgc3ltLT50cy5pbnRlcmZhY2UKLQkgICAgICAgJiYgc3ltLT5hdHRyLmlm X3NvdXJjZSAhPSBJRlNSQ19ERUNMKQotCXJlc29sdmVfcHJvY2VkdXJlX2lu dGVyZmFjZSAoc3ltKTsKKyAgICAgIGVsc2UgaWYgKHN5bS0+YXR0ci5wcm9j ZWR1cmUgJiYgc3ltLT5hdHRyLmlmX3NvdXJjZSAhPSBJRlNSQ19ERUNMCisJ ICAgICAgICYmIHJlc29sdmVfcHJvY2VkdXJlX2ludGVyZmFjZSAoc3ltKSA9 PSBGQUlMVVJFKQorCXJldHVybjsKIAogICAgICAgaWYgKHN5bS0+YXR0ci5p Zl9zb3VyY2UgIT0gSUZTUkNfVU5LTk9XTikKIAlyZXNvbHZlX2Zvcm1hbF9h cmdsaXN0IChzeW0pOwpAQCAtMTY3MiwxMCArMTcwNiw3IEBAIHJlc29sdmVf YWN0dWFsX2FyZ2xpc3QgKGdmY19hY3R1YWxfYXJnbGlzdCAqYXJnLCBwCiAK IAkgIC8qIElmIGEgcHJvY2VkdXJlIGlzIG5vdCBhbHJlYWR5IGRldGVybWlu ZWQgdG8gYmUgc29tZXRoaW5nIGVsc2UKIAkgICAgIGNoZWNrIGlmIGl0IGlz IGludHJpbnNpYy4gICovCi0JICBpZiAoIXN5bS0+YXR0ci5pbnRyaW5zaWMK LQkgICAgICAmJiAhKHN5bS0+YXR0ci5leHRlcm5hbCB8fCBzeW0tPmF0dHIu dXNlX2Fzc29jCi0JCSAgIHx8IHN5bS0+YXR0ci5pZl9zb3VyY2UgPT0gSUZT UkNfSUZCT0RZKQotCSAgICAgICYmIGdmY19pc19pbnRyaW5zaWMgKHN5bSwg c3ltLT5hdHRyLnN1YnJvdXRpbmUsIGUtPndoZXJlKSkKKwkgIGlmIChnZmNf aXNfaW50cmluc2ljIChzeW0sIHN5bS0+YXR0ci5zdWJyb3V0aW5lLCBlLT53 aGVyZSkpCiAJICAgIHN5bS0+YXR0ci5pbnRyaW5zaWMgPSAxOwogCiAJICBp ZiAoc3ltLT5hdHRyLnByb2MgPT0gUFJPQ19TVF9GVU5DVElPTikKQEAgLTI2 MDEsOCArMjYzMiw3IEBAIHN0YXRpYyBib29sCiBpc19leHRlcm5hbF9wcm9j IChnZmNfc3ltYm9sICpzeW0pCiB7CiAgIGlmICghc3ltLT5hdHRyLmR1bW15 ICYmICFzeW0tPmF0dHIuY29udGFpbmVkCi0JJiYgIShzeW0tPmF0dHIuaW50 cmluc2ljCi0JICAgICAgfHwgZ2ZjX2lzX2ludHJpbnNpYyAoc3ltLCBzeW0t PmF0dHIuc3Vicm91dGluZSwgc3ltLT5kZWNsYXJlZF9hdCkpCisJJiYgIWdm Y19pc19pbnRyaW5zaWMgKHN5bSwgc3ltLT5hdHRyLnN1YnJvdXRpbmUsIHN5 bS0+ZGVjbGFyZWRfYXQpCiAJJiYgc3ltLT5hdHRyLnByb2MgIT0gUFJPQ19T VF9GVU5DVElPTgogCSYmICFzeW0tPmF0dHIucHJvY19wb2ludGVyCiAJJiYg IXN5bS0+YXR0ci51c2VfYXNzb2MKQEAgLTEyNDg2LDggKzEyNTE2LDcgQEAg cmVzb2x2ZV9zeW1ib2wgKGdmY19zeW1ib2wgKnN5bSkKICAgaWYgKHN5bS0+ YXR0ci5leHRlcm5hbCAmJiBzeW0tPnRzLnR5cGUgIT0gQlRfVU5LTk9XTiAm JiAhc3ltLT5hdHRyLmZ1bmN0aW9uKQogICAgIGdmY19hZGRfZnVuY3Rpb24g KCZzeW0tPmF0dHIsIHN5bS0+bmFtZSwgJnN5bS0+ZGVjbGFyZWRfYXQpOwog Ci0gIGlmIChzeW0tPmF0dHIucHJvY2VkdXJlICYmIHN5bS0+dHMuaW50ZXJm YWNlCi0gICAgICAmJiBzeW0tPmF0dHIuaWZfc291cmNlICE9IElGU1JDX0RF Q0wKKyAgaWYgKHN5bS0+YXR0ci5wcm9jZWR1cmUgJiYgc3ltLT5hdHRyLmlm X3NvdXJjZSAhPSBJRlNSQ19ERUNMCiAgICAgICAmJiByZXNvbHZlX3Byb2Nl ZHVyZV9pbnRlcmZhY2UgKHN5bSkgPT0gRkFJTFVSRSkKICAgICByZXR1cm47 CiAK --001636c927c509afd404c61d1ddf Content-Type: application/octet-stream; name="proc_decl_29.f90" Content-Disposition: attachment; filename="proc_decl_29.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h5asz5ob1 Content-length: 749 ISB7IGRnLWRvIGNvbXBpbGUgfQohCiEgUFIgNDI0MTg6IFBST0NFRFVSRTog UmVqZWN0cyBpbnRlcmZhY2Ugd2hpY2ggaXMgYm90aCBzcGVjaWZpYyBhbmQg Z2VuZXJpYyBwcm9jZWR1cmUKIQohIENvbnRyaWJ1dGVkIGJ5IFRvYmlhcyBC dXJudXMgPGJ1cm51c0BnY2MuZ251Lm9yZz4KCiAgaW50ZXJmYWNlIGdlbgog ICAgcHJvY2VkdXJlIGdlbgogIGVuZCBpbnRlcmZhY2UKCiAgcHJvY2VkdXJl KGdlbikgIDo6IHAxCiAgcHJvY2VkdXJlKGdlbjIpIDo6IHAyICAhIHsgZGct ZXJyb3IgIm1heSBub3QgYmUgZ2VuZXJpYyIgfQogIHByb2NlZHVyZShzZikg ICA6OiBwMyAgISB7IGRnLWVycm9yICJtYXkgbm90IGJlIGEgc3RhdGVtZW50 IGZ1bmN0aW9uIiB9CiAgcHJvY2VkdXJlKGNoYXIpIDo6IHA0CgogIGludGVy ZmFjZSBnZW4yCiAgICBwcm9jZWR1cmUgY2hhcgogIGVuZCBpbnRlcmZhY2UK CiAgc2YoeCkgPSB4KioyCgpjb250YWlucwoKICBzdWJyb3V0aW5lIGdlbgog IGVuZCBzdWJyb3V0aW5lCgogIHN1YnJvdXRpbmUgY2hhcgogIGVuZCBzdWJy b3V0aW5lCgplbmQK --001636c927c509afd404c61d1ddf--