From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6693 invoked by alias); 1 Oct 2011 23:43:35 -0000 Received: (qmail 6677 invoked by uid 22791); 1 Oct 2011 23:43:34 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-gy0-f175.google.com (HELO mail-gy0-f175.google.com) (209.85.160.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 01 Oct 2011 23:43:18 +0000 Received: by gyg8 with SMTP id 8so2969384gyg.20 for ; Sat, 01 Oct 2011 16:43:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.236.143.99 with SMTP id k63mr23765050yhj.64.1317512597160; Sat, 01 Oct 2011 16:43:17 -0700 (PDT) Received: by 10.147.114.1 with HTTP; Sat, 1 Oct 2011 16:43:17 -0700 (PDT) Date: Sat, 01 Oct 2011 23:43:00 -0000 Message-ID: Subject: [Patch, Fortran] PR 50547 / cleanup in resolve_formal_arglist From: Janus Weil To: gfortran , gcc-patches Content-Type: multipart/mixed; boundary=20cf303ea5dc5742a104ae454e54 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: 2011-10/txt/msg00032.txt.bz2 --20cf303ea5dc5742a104ae454e54 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1727 Hi all, while working on PR50547, I noticed some strange things about resolve_formal_arglist, so I decided to clean it up a little. The attached patch does a couple of things: (1) It removes an error message ("Unable to find a specific INTRINSIC procedure...") which simply does not make any sense in resolve_formal_arglist. There is just no way for procedure dummies to be intrinsics. "svn blame" claims this code was committed by Paul in r120296 (for PR27900): http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27900#c12 The error message was added both in resolve_actual_arglist (where it *does* make sense), and in resolve_formal_arglist (where it doesn't). (2) The error message "Dummy procedure ... not allowed in ELEMENTAL procedure" is being thrown in two different places (for functions/subroutines), which is completely unnecessary. I removed one of them, and made sure the other is triggered for both cases. Also the testsuite was missing a test for this case, so I added one. (3) I reshuffled some of the code dealing with pure procedures, in order to have it in one place. (4) I reshuffled some of the code dealing with "attr.implicit_pure", so that it is not so scattered around and better to understand. During all the reshuffling I removed an early "continue" for dummy subroutines, and as a consequence had to deal with (not) setting type and flavor for subroutines. Regtested on x86_64-unknown-linux-gnu. Ok for trunk? Cheers, Janus 2011-10-02 Janus Weil PR fortran/50547 * resolve.c (resolve_formal_arglist): Remove unneeded error message. Some reshuffling. 2011-10-02 Janus Weil PR fortran/50547 * gfortran.dg/elemental_args_check_4.f90: New. --20cf303ea5dc5742a104ae454e54 Content-Type: text/x-diff; charset=US-ASCII; name="pr50547.diff" Content-Disposition: attachment; filename="pr50547.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gt98yu6k0 Content-length: 7304 SW5kZXg6IGdjYy9mb3J0cmFuL3Jlc29sdmUuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHJldmlzaW9uIDE3 OTQxMykKKysrIGdjYy9mb3J0cmFuL3Jlc29sdmUuYwkod29ya2luZyBjb3B5 KQpAQCAtMjY5LDUwICsyNjksMTggQEAgcmVzb2x2ZV9mb3JtYWxfYXJnbGlz dCAoZ2ZjX3N5bWJvbCAqcHJvYykKICAgICAgIGlmIChzeW0tPmF0dHIuaWZf c291cmNlICE9IElGU1JDX1VOS05PV04pCiAJcmVzb2x2ZV9mb3JtYWxfYXJn bGlzdCAoc3ltKTsKIAotICAgICAgLyogRjA4OkMxMjc5LiAgKi8KLSAgICAg IGlmIChnZmNfcHVyZSAocHJvYykKLQkgICYmIHN5bS0+YXR0ci5mbGF2b3Ig PT0gRkxfUFJPQ0VEVVJFICYmICFnZmNfcHVyZSAoc3ltKSkKKyAgICAgIGlm IChzeW0tPmF0dHIuc3Vicm91dGluZSB8fCBzeW0tPmF0dHIuZXh0ZXJuYWwp CiAJewotCSAgZ2ZjX2Vycm9yICgiRHVtbXkgcHJvY2VkdXJlICclcycgb2Yg UFVSRSBwcm9jZWR1cmUgYXQgJUwgbXVzdCAiCi0JCSAgICAgImFsc28gYmUg UFVSRSIsIHN5bS0+bmFtZSwgJnN5bS0+ZGVjbGFyZWRfYXQpOwotCSAgY29u dGludWU7CisJICBpZiAoc3ltLT5hdHRyLmZsYXZvciA9PSBGTF9VTktOT1dO KQorCSAgICBnZmNfYWRkX2ZsYXZvciAoJnN5bS0+YXR0ciwgRkxfUFJPQ0VE VVJFLCBzeW0tPm5hbWUsICZzeW0tPmRlY2xhcmVkX2F0KTsKIAl9Ci0gICAg ICAKLSAgICAgIGlmIChzeW0tPmF0dHIuc3Vicm91dGluZSB8fCBzeW0tPmF0 dHIuZXh0ZXJuYWwgfHwgc3ltLT5hdHRyLmludHJpbnNpYykKKyAgICAgIGVs c2UKIAl7Ci0JICBpZiAocHJvYy0+YXR0ci5pbXBsaWNpdF9wdXJlICYmICFn ZmNfcHVyZShzeW0pKQotCSAgICBwcm9jLT5hdHRyLmltcGxpY2l0X3B1cmUg PSAwOwotCi0JICAvKiBGMDg6QzEyODkuICAqLwotCSAgaWYgKGdmY19lbGVt ZW50YWwgKHByb2MpKQotCSAgICB7Ci0JICAgICAgZ2ZjX2Vycm9yICgiRHVt bXkgcHJvY2VkdXJlIGF0ICVMIG5vdCBhbGxvd2VkIGluIEVMRU1FTlRBTCAi Ci0JCQkgInByb2NlZHVyZSIsICZzeW0tPmRlY2xhcmVkX2F0KTsKLQkgICAg ICBjb250aW51ZTsKLQkgICAgfQotCi0JICBpZiAoc3ltLT5hdHRyLmZ1bmN0 aW9uCi0JCSYmIHN5bS0+dHMudHlwZSA9PSBCVF9VTktOT1dOCi0JCSYmIHN5 bS0+YXR0ci5pbnRyaW5zaWMpCi0JICAgIHsKLQkgICAgICBnZmNfaW50cmlu c2ljX3N5bSAqaXN5bTsKLQkgICAgICBpc3ltID0gZ2ZjX2ZpbmRfZnVuY3Rp b24gKHN5bS0+bmFtZSk7Ci0JICAgICAgaWYgKGlzeW0gPT0gTlVMTCB8fCAh aXN5bS0+c3BlY2lmaWMpCi0JCXsKLQkJICBnZmNfZXJyb3IgKCJVbmFibGUg dG8gZmluZCBhIHNwZWNpZmljIElOVFJJTlNJQyBwcm9jZWR1cmUgIgotCQkJ ICAgICAiZm9yIHRoZSByZWZlcmVuY2UgJyVzJyBhdCAlTCIsIHN5bS0+bmFt ZSwKLQkJCSAgICAgJnN5bS0+ZGVjbGFyZWRfYXQpOwotCQl9Ci0JICAgICAg c3ltLT50cyA9IGlzeW0tPnRzOwotCSAgICB9Ci0KLQkgIGNvbnRpbnVlOwor CSAgaWYgKHN5bS0+dHMudHlwZSA9PSBCVF9VTktOT1dOICYmICFwcm9jLT5h dHRyLmludHJpbnNpYworCSAgICAgICYmICghc3ltLT5hdHRyLmZ1bmN0aW9u IHx8IHN5bS0+cmVzdWx0ID09IHN5bSkpCisJICAgIGdmY19zZXRfZGVmYXVs dF90eXBlIChzeW0sIDEsIHN5bS0+bnMpOwogCX0KIAotICAgICAgaWYgKHN5 bS0+dHMudHlwZSA9PSBCVF9VTktOT1dOICYmICFwcm9jLT5hdHRyLmludHJp bnNpYwotCSAgJiYgKCFzeW0tPmF0dHIuZnVuY3Rpb24gfHwgc3ltLT5yZXN1 bHQgPT0gc3ltKSkKLQlnZmNfc2V0X2RlZmF1bHRfdHlwZSAoc3ltLCAxLCBz eW0tPm5zKTsKLQogICAgICAgZ2ZjX3Jlc29sdmVfYXJyYXlfc3BlYyAoc3lt LT5hcywgMCk7CiAKICAgICAgIC8qIFdlIGNhbid0IHRlbGwgaWYgYW4gYXJy YXkgd2l0aCBkaW1lbnNpb24gKDopIGlzIGFzc3VtZWQgb3IgZGVmZXJyZWQK QEAgLTM0Myw0NCArMzExLDY0IEBAIHJlc29sdmVfZm9ybWFsX2FyZ2xpc3Qg KGdmY19zeW1ib2wgKnByb2MpCiAgICAgICBpZiAoc3ltLT5hdHRyLmZsYXZv ciA9PSBGTF9VTktOT1dOKQogCWdmY19hZGRfZmxhdm9yICgmc3ltLT5hdHRy LCBGTF9WQVJJQUJMRSwgc3ltLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7 CiAKLSAgICAgIGlmIChnZmNfcHVyZSAocHJvYykgJiYgIXN5bS0+YXR0ci5w b2ludGVyCi0JICAmJiBzeW0tPmF0dHIuZmxhdm9yICE9IEZMX1BST0NFRFVS RSkKKyAgICAgIGlmIChnZmNfcHVyZSAocHJvYykpCiAJewotCSAgaWYgKHBy b2MtPmF0dHIuZnVuY3Rpb24gJiYgc3ltLT5hdHRyLmludGVudCAhPSBJTlRF TlRfSU4pCisJICBpZiAoc3ltLT5hdHRyLmZsYXZvciA9PSBGTF9QUk9DRURV UkUpCiAJICAgIHsKLQkgICAgICBpZiAoc3ltLT5hdHRyLnZhbHVlKQotCQln ZmNfbm90aWZ5X3N0ZCAoR0ZDX1NURF9GMjAwOCwgIkZvcnRyYW4gMjAwODog QXJndW1lbnQgJyVzJyAiCi0JCQkJIm9mIHB1cmUgZnVuY3Rpb24gJyVzJyBh dCAlTCB3aXRoIFZBTFVFICIKLQkJCQkiYXR0cmlidXRlIGJ1dCB3aXRob3V0 IElOVEVOVChJTikiLCBzeW0tPm5hbWUsCi0JCQkJcHJvYy0+bmFtZSwgJnN5 bS0+ZGVjbGFyZWRfYXQpOwotCSAgICAgIGVsc2UKLQkJZ2ZjX2Vycm9yICgi QXJndW1lbnQgJyVzJyBvZiBwdXJlIGZ1bmN0aW9uICclcycgYXQgJUwgbXVz dCBiZSAiCi0JCQkgICAiSU5URU5UKElOKSBvciBWQUxVRSIsIHN5bS0+bmFt ZSwgcHJvYy0+bmFtZSwKLQkJCSAgICZzeW0tPmRlY2xhcmVkX2F0KTsKKwkg ICAgICAvKiBGMDg6QzEyNzkuICAqLworCSAgICAgIGlmICghZ2ZjX3B1cmUg KHN5bSkpCisJCXsKKwkJICBnZmNfZXJyb3IgKCJEdW1teSBwcm9jZWR1cmUg JyVzJyBvZiBQVVJFIHByb2NlZHVyZSBhdCAlTCBtdXN0ICIKKwkJCSAgICAi YWxzbyBiZSBQVVJFIiwgc3ltLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7 CisJCSAgY29udGludWU7CisJCX0KIAkgICAgfQotCi0JICBpZiAocHJvYy0+ YXR0ci5zdWJyb3V0aW5lICYmIHN5bS0+YXR0ci5pbnRlbnQgPT0gSU5URU5U X1VOS05PV04pCisJICBlbHNlIGlmICghc3ltLT5hdHRyLnBvaW50ZXIpCiAJ ICAgIHsKLQkgICAgICBpZiAoc3ltLT5hdHRyLnZhbHVlKQotCQlnZmNfbm90 aWZ5X3N0ZCAoR0ZDX1NURF9GMjAwOCwgIkZvcnRyYW4gMjAwODogQXJndW1l bnQgJyVzJyAiCi0JCQkJIm9mIHB1cmUgc3Vicm91dGluZSAnJXMnIGF0ICVM IHdpdGggVkFMVUUgIgotCQkJCSJhdHRyaWJ1dGUgYnV0IHdpdGhvdXQgSU5U RU5UIiwgc3ltLT5uYW1lLAotCQkJCXByb2MtPm5hbWUsICZzeW0tPmRlY2xh cmVkX2F0KTsKLQkgICAgICBlbHNlCi0JCWdmY19lcnJvciAoIkFyZ3VtZW50 ICclcycgb2YgcHVyZSBzdWJyb3V0aW5lICclcycgYXQgJUwgbXVzdCAiCi0J CSAgICAgICAiaGF2ZSBpdHMgSU5URU5UIHNwZWNpZmllZCBvciBoYXZlIHRo ZSBWQUxVRSAiCi0JCSAgICAgICAiYXR0cmlidXRlIiwgc3ltLT5uYW1lLCBw cm9jLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7CisJICAgICAgaWYgKHBy b2MtPmF0dHIuZnVuY3Rpb24gJiYgc3ltLT5hdHRyLmludGVudCAhPSBJTlRF TlRfSU4pCisJCXsKKwkJICBpZiAoc3ltLT5hdHRyLnZhbHVlKQorCQkgICAg Z2ZjX25vdGlmeV9zdGQgKEdGQ19TVERfRjIwMDgsICJGb3J0cmFuIDIwMDg6 IEFyZ3VtZW50ICclcyciCisJCQkJICAgICIgb2YgcHVyZSBmdW5jdGlvbiAn JXMnIGF0ICVMIHdpdGggVkFMVUUgIgorCQkJCSAgICAiYXR0cmlidXRlIGJ1 dCB3aXRob3V0IElOVEVOVChJTikiLAorCQkJCSAgICBzeW0tPm5hbWUsIHBy b2MtPm5hbWUsICZzeW0tPmRlY2xhcmVkX2F0KTsKKwkJICBlbHNlCisJCSAg ICBnZmNfZXJyb3IgKCJBcmd1bWVudCAnJXMnIG9mIHB1cmUgZnVuY3Rpb24g JyVzJyBhdCAlTCBtdXN0ICIKKwkJCSAgICAgICAiYmUgSU5URU5UKElOKSBv ciBWQUxVRSIsIHN5bS0+bmFtZSwgcHJvYy0+bmFtZSwKKwkJCSAgICAgICAm c3ltLT5kZWNsYXJlZF9hdCk7CisJCX0KKworCSAgICAgIGlmIChwcm9jLT5h dHRyLnN1YnJvdXRpbmUgJiYgc3ltLT5hdHRyLmludGVudCA9PSBJTlRFTlRf VU5LTk9XTikKKwkJeworCQkgIGlmIChzeW0tPmF0dHIudmFsdWUpCisJCSAg ICBnZmNfbm90aWZ5X3N0ZCAoR0ZDX1NURF9GMjAwOCwgIkZvcnRyYW4gMjAw ODogQXJndW1lbnQgJyVzJyIKKwkJCQkgICAgIiBvZiBwdXJlIHN1YnJvdXRp bmUgJyVzJyBhdCAlTCB3aXRoIFZBTFVFICIKKwkJCQkgICAgImF0dHJpYnV0 ZSBidXQgd2l0aG91dCBJTlRFTlQiLCBzeW0tPm5hbWUsCisJCQkJICAgIHBy b2MtPm5hbWUsICZzeW0tPmRlY2xhcmVkX2F0KTsKKwkJICBlbHNlCisJCSAg ICBnZmNfZXJyb3IgKCJBcmd1bWVudCAnJXMnIG9mIHB1cmUgc3Vicm91dGlu ZSAnJXMnIGF0ICVMICIKKwkJCSAgICAgICAibXVzdCBoYXZlIGl0cyBJTlRF TlQgc3BlY2lmaWVkIG9yIGhhdmUgdGhlICIKKwkJCSAgICAgICAiVkFMVUUg YXR0cmlidXRlIiwgc3ltLT5uYW1lLCBwcm9jLT5uYW1lLAorCQkJICAgICAg ICZzeW0tPmRlY2xhcmVkX2F0KTsKKwkJfQogCSAgICB9CiAJfQogCi0gICAg ICBpZiAocHJvYy0+YXR0ci5pbXBsaWNpdF9wdXJlICYmICFzeW0tPmF0dHIu cG9pbnRlcgotCSAgJiYgc3ltLT5hdHRyLmZsYXZvciAhPSBGTF9QUk9DRURV UkUpCisgICAgICBpZiAocHJvYy0+YXR0ci5pbXBsaWNpdF9wdXJlKQogCXsK LQkgIGlmIChwcm9jLT5hdHRyLmZ1bmN0aW9uICYmIHN5bS0+YXR0ci5pbnRl bnQgIT0gSU5URU5UX0lOKQotCSAgICBwcm9jLT5hdHRyLmltcGxpY2l0X3B1 cmUgPSAwOworCSAgaWYgKHN5bS0+YXR0ci5mbGF2b3IgPT0gRkxfUFJPQ0VE VVJFKQorCSAgICB7CisJICAgICAgaWYgKCFnZmNfcHVyZShzeW0pKQorCQlw cm9jLT5hdHRyLmltcGxpY2l0X3B1cmUgPSAwOworCSAgICB9CisJICBlbHNl IGlmICghc3ltLT5hdHRyLnBvaW50ZXIpCisJICAgIHsKKwkgICAgICBpZiAo cHJvYy0+YXR0ci5mdW5jdGlvbiAmJiBzeW0tPmF0dHIuaW50ZW50ICE9IElO VEVOVF9JTikKKwkJcHJvYy0+YXR0ci5pbXBsaWNpdF9wdXJlID0gMDsKIAot CSAgaWYgKHByb2MtPmF0dHIuc3Vicm91dGluZSAmJiBzeW0tPmF0dHIuaW50 ZW50ID09IElOVEVOVF9VTktOT1dOKQotCSAgICBwcm9jLT5hdHRyLmltcGxp Y2l0X3B1cmUgPSAwOworCSAgICAgIGlmIChwcm9jLT5hdHRyLnN1YnJvdXRp bmUgJiYgc3ltLT5hdHRyLmludGVudCA9PSBJTlRFTlRfVU5LTk9XTikKKwkJ cHJvYy0+YXR0ci5pbXBsaWNpdF9wdXJlID0gMDsKKwkgICAgfQogCX0KIAog ICAgICAgaWYgKGdmY19lbGVtZW50YWwgKHByb2MpKQo= --20cf303ea5dc5742a104ae454e54 Content-Type: text/x-fortran; charset=US-ASCII; name="elemental_args_check_4.f90" Content-Disposition: attachment; filename="elemental_args_check_4.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gt98z1y31 Content-length: 407 ISB7IGRnLWRvIGNvbXBpbGUgfQohCiEgUFIgNTA1NDc6IGR1bW15IHByb2Nl ZHVyZSBhcmd1bWVudCBvZiBQVVJFIHNoYWxsIGJlIFBVUkUKIQohIENvbnRy aWJ1dGVkIGJ5IEphbnVzIFdlaWwgPGphbnVzQGdjYy5nbnUub3JnPgoKZWxl bWVudGFsIGZ1bmN0aW9uIGZ1biAoc3ViKQogIGludGVyZmFjZQogICAgcHVy ZSBzdWJyb3V0aW5lIHN1YiAgISB7IGRnLWVycm9yICJub3QgYWxsb3dlZCBp biBlbGVtZW50YWwgcHJvY2VkdXJlIiB9CiAgICBlbmQgc3Vicm91dGluZQog IGVuZCBpbnRlcmZhY2UKZW5kIGZ1bmN0aW9uCg== --20cf303ea5dc5742a104ae454e54--