From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 112724 invoked by alias); 1 Jun 2016 09:29:39 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 111991 invoked by uid 89); 1 Jun 2016 09:29:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=arises, promptly, dear X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-yw0-f169.google.com Received: from mail-yw0-f169.google.com (HELO mail-yw0-f169.google.com) (209.85.161.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 01 Jun 2016 09:29:28 +0000 Received: by mail-yw0-f169.google.com with SMTP id x189so12669846ywe.3; Wed, 01 Jun 2016 02:29:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=J/sH5GP4GBuraanjaYXWLsumFMJsroPk0JhZQ2op7WM=; b=bZf5neUh1dIbrIVUhPpkzuOersq6jwxksY1zSuSGoVQXGFlU03wpU0jCloW1qRSI+G J0gQTEt3+kyyKbOLuMMlks+MVz3x2V9ugXiq6mZekOWbv8q6qFP/oezfG+5U1k/LfEtc nX+oR0KqpMTgrYLjJKCq2LSv/Zqd1T+PhH2eEPy+OhfaiLGvx9xtK2TtkuW1DYr6KwNY /MTyBT9CZXHP7T3HSenRhHIyn/cIjkDyPkrhisQG8nGy8CCv5hC1022VcT+Wm1kDvIRH mUnLvZDqV+4Gdoz29U2WVD9xl9nmlXdh87a86jfTIBpBl4Mbd4HwJjZMQ6mbL5JiiwZU hBLw== X-Gm-Message-State: ALyK8tLSBe73T5X0MuXMfTEpXbG/TOJ98CUYBfXqUCeUST6EZ8kQtKoQVmyq3un2IOV+XC5+YprUgljIuB9F8w== MIME-Version: 1.0 X-Received: by 10.13.210.67 with SMTP id u64mr1795802ywd.42.1464773366433; Wed, 01 Jun 2016 02:29:26 -0700 (PDT) Received: by 10.129.154.18 with HTTP; Wed, 1 Jun 2016 02:29:26 -0700 (PDT) Date: Wed, 01 Jun 2016 09:29:00 -0000 Message-ID: Subject: [Patch, fortran] PR71156 - PURE interface/definition inconsistency: accepts invalid, rejects valid From: Paul Richard Thomas To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary=001a114e7e302ef68c05343420f6 X-IsSubscribed: yes X-SW-Source: 2016-06/txt/msg00001.txt.bz2 --001a114e7e302ef68c05343420f6 Content-Type: text/plain; charset=UTF-8 Content-length: 964 Dear All, I had noticed this bug when writing submodule_14.f08 but promptly forgot all about it. The fix is trivial. The error checks for pure and elemental have been inverted to prevent missing elemental prefixes being flagged as missing pure prefixes. This arises from the implicit pure attribute given to elemental procedures. Bootstrapped and regtested on FC21/x86_64 - OK for trunk and 6-branch? Paul 2016-06-01 Paul Thomas PR fortran/71156 * decl.c (copy_prefix): Add checks that the module procedure declaration prefixes are compliant with the interface. Invert order of existing elemental and pure checks. * resolve.c (resolve_fl_procedure): Invert order of elemental and pure errors. 2016-06-01 Paul Thomas PR fortran/71156 * gfortran.dg/submodule_14.f08: Add missing recursive prefix to the module procedure declaration. * gfortran.dg/submodule_16.f08: New test --001a114e7e302ef68c05343420f6 Content-Type: text/plain; charset=US-ASCII; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iowkpenp0 Content-length: 7979 SW5kZXg6IGdjYy9mb3J0cmFuL2RlY2wuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CioqKiBnY2MvZm9ydHJhbi9kZWNsLmMJKHJldmlzaW9uIDIzNjM1NikK LS0tIGdjYy9mb3J0cmFuL2RlY2wuYwkod29ya2luZyBjb3B5KQoqKioqKioq KioqKioqKiogZXJyb3I6CioqKiA0OTc4LDQ5ODkgKioqKgogIHN0YXRpYyBi b29sCiAgY29weV9wcmVmaXggKHN5bWJvbF9hdHRyaWJ1dGUgKmRlc3QsIGxv Y3VzICp3aGVyZSkKICB7CiEgICBpZiAoY3VycmVudF9hdHRyLnB1cmUgJiYg IWdmY19hZGRfcHVyZSAoZGVzdCwgd2hlcmUpKQogICAgICByZXR1cm4gZmFs c2U7CiAgCiAgICBpZiAoY3VycmVudF9hdHRyLmVsZW1lbnRhbCAmJiAhZ2Zj X2FkZF9lbGVtZW50YWwgKGRlc3QsIHdoZXJlKSkKICAgICAgcmV0dXJuIGZh bHNlOwogIAogICAgaWYgKGN1cnJlbnRfYXR0ci5yZWN1cnNpdmUgJiYgIWdm Y19hZGRfcmVjdXJzaXZlIChkZXN0LCB3aGVyZSkpCiAgICAgIHJldHVybiBm YWxzZTsKICAKLS0tIDQ5NzgsNTAyOCAtLS0tCiAgc3RhdGljIGJvb2wKICBj b3B5X3ByZWZpeCAoc3ltYm9sX2F0dHJpYnV0ZSAqZGVzdCwgbG9jdXMgKndo ZXJlKQogIHsKISAgIGlmIChkZXN0LT5tb2R1bGVfcHJvY2VkdXJlKQohICAg ICB7CiEgICAgICAgaWYgKGN1cnJlbnRfYXR0ci5lbGVtZW50YWwpCiEgCWRl c3QtPmVsZW1lbnRhbCA9IDE7CiEgCiEgICAgICAgaWYgKGN1cnJlbnRfYXR0 ci5wdXJlKQohIAlkZXN0LT5wdXJlID0gMTsKISAKISAgICAgICBpZiAoY3Vy cmVudF9hdHRyLnJlY3Vyc2l2ZSkKISAJZGVzdC0+cmVjdXJzaXZlID0gMTsK ISAKISAgICAgICAvKiBNb2R1bGUgcHJvY2VkdXJlcyBhcmUgdW51c3VhbCBp biB0aGF0IHRoZSAnZGVzdCcgaXMgY29waWVkIGZyb20KISAJIHRoZSBpbnRl cmZhY2UgZGVjbGFyYXRpb24uIEhvd2V2ZXIsIHRoaXMgaXMgYW4gb3BvcnR1 bml0eSB0bwohIAkgY2hlY2sgdGhhdCB0aGUgc3VibW9kdWxlIGRlY2xhcmF0 aW9uIGlzIGNvbXBsaWFudCB3aXRoIHRoZQohIAkgaW50ZXJmYWNlLiAgKi8K ISAgICAgICBpZiAoZGVzdC0+ZWxlbWVudGFsICYmICFjdXJyZW50X2F0dHIu ZWxlbWVudGFsKQohIAl7CiEgCSAgZ2ZjX2Vycm9yICgiRUxFTUVOVEFMIHBy ZWZpeCBpbiBNT0RVTEUgUFJPQ0VEVVJFIGludGVyZmFjZSBpcyAiCiEgCQkg ICAgICJtaXNzaW5nIGF0ICVMIiwgd2hlcmUpOwogIAkgIHJldHVybiBmYWxz ZTsKKyAJfQorIAorICAgICAgIGlmIChkZXN0LT5wdXJlICYmICFjdXJyZW50 X2F0dHIucHVyZSkKKyAJeworIAkgIGdmY19lcnJvciAoIlBVUkUgcHJlZml4 IGluIE1PRFVMRSBQUk9DRURVUkUgaW50ZXJmYWNlIGlzICIKKyAJCSAgICAg Im1pc3NpbmcgYXQgJUwiLCB3aGVyZSk7CisgCSAgcmV0dXJuIGZhbHNlOwor IAl9CisgCisgICAgICAgaWYgKGRlc3QtPnJlY3Vyc2l2ZSAmJiAhY3VycmVu dF9hdHRyLnJlY3Vyc2l2ZSkKKyAJeworIAkgIGdmY19lcnJvciAoIlJFQ1VS U0lWRSBwcmVmaXggaW4gTU9EVUxFIFBST0NFRFVSRSBpbnRlcmZhY2UgaXMg IgorIAkJICAgICAibWlzc2luZyBhdCAlTCIsIHdoZXJlKTsKKyAJICByZXR1 cm4gZmFsc2U7CisgCX0KKyAKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg fQogIAogICAgaWYgKGN1cnJlbnRfYXR0ci5lbGVtZW50YWwgJiYgIWdmY19h ZGRfZWxlbWVudGFsIChkZXN0LCB3aGVyZSkpCiAgICAgIHJldHVybiBmYWxz ZTsKICAKKyAgIGlmIChjdXJyZW50X2F0dHIucHVyZSAmJiAhZ2ZjX2FkZF9w dXJlIChkZXN0LCB3aGVyZSkpCisgICAgIHJldHVybiBmYWxzZTsKKyAKICAg IGlmIChjdXJyZW50X2F0dHIucmVjdXJzaXZlICYmICFnZmNfYWRkX3JlY3Vy c2l2ZSAoZGVzdCwgd2hlcmUpKQogICAgICByZXR1cm4gZmFsc2U7CiAgCklu ZGV4OiBnY2MvZm9ydHJhbi9yZXNvbHZlLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQoqKiogZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCShyZXZpc2lvbiAyMzYz NTYpCi0tLSBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHdvcmtpbmcgY29weSkK KioqKioqKioqKioqKioqIHJlc29sdmVfZmxfcHJvY2VkdXJlIChnZmNfc3lt Ym9sICpzeW0sIGkKKioqIDExOTY1LDExOTgxICoqKioKICAJZ290byBjaGVj a19mb3JtYWw7CiAgCiAgICAgICAgLyogQ2hlY2sgdGhlIHByb2NlZHVyZSBj aGFyYWN0ZXJpc3RpY3MuICAqLwohICAgICAgIGlmIChzeW0tPmF0dHIucHVy ZSAhPSBpZmFjZS0+YXR0ci5wdXJlKQogIAl7CiEgCSAgZ2ZjX2Vycm9yICgi TWlzbWF0Y2ggaW4gUFVSRSBhdHRyaWJ1dGUgYmV0d2VlbiBNT0RVTEUgIgog IAkJICAgICAiUFJPQ0VEVVJFIGF0ICVMIGFuZCBpdHMgaW50ZXJmYWNlIGlu ICVzIiwKICAJCSAgICAgJnN5bS0+ZGVjbGFyZWRfYXQsIG1vZHVsZV9uYW1l KTsKICAJICByZXR1cm4gZmFsc2U7CiAgCX0KICAKISAgICAgICBpZiAoc3lt LT5hdHRyLmVsZW1lbnRhbCAhPSBpZmFjZS0+YXR0ci5lbGVtZW50YWwpCiAg CXsKISAJICBnZmNfZXJyb3IgKCJNaXNtYXRjaCBpbiBFTEVNRU5UQUwgYXR0 cmlidXRlIGJldHdlZW4gTU9EVUxFICIKICAJCSAgICAgIlBST0NFRFVSRSBh dCAlTCBhbmQgaXRzIGludGVyZmFjZSBpbiAlcyIsCiAgCQkgICAgICZzeW0t PmRlY2xhcmVkX2F0LCBtb2R1bGVfbmFtZSk7CiAgCSAgcmV0dXJuIGZhbHNl OwotLS0gMTE5NjUsMTE5ODEgLS0tLQogIAlnb3RvIGNoZWNrX2Zvcm1hbDsK ICAKICAgICAgICAvKiBDaGVjayB0aGUgcHJvY2VkdXJlIGNoYXJhY3Rlcmlz dGljcy4gICovCiEgICAgICAgaWYgKHN5bS0+YXR0ci5lbGVtZW50YWwgIT0g aWZhY2UtPmF0dHIuZWxlbWVudGFsKQogIAl7CiEgCSAgZ2ZjX2Vycm9yICgi TWlzbWF0Y2ggaW4gRUxFTUVOVEFMIGF0dHJpYnV0ZSBiZXR3ZWVuIE1PRFVM RSAiCiAgCQkgICAgICJQUk9DRURVUkUgYXQgJUwgYW5kIGl0cyBpbnRlcmZh Y2UgaW4gJXMiLAogIAkJICAgICAmc3ltLT5kZWNsYXJlZF9hdCwgbW9kdWxl X25hbWUpOwogIAkgIHJldHVybiBmYWxzZTsKICAJfQogIAohICAgICAgIGlm IChzeW0tPmF0dHIucHVyZSAhPSBpZmFjZS0+YXR0ci5wdXJlKQogIAl7CiEg CSAgZ2ZjX2Vycm9yICgiTWlzbWF0Y2ggaW4gUFVSRSBhdHRyaWJ1dGUgYmV0 d2VlbiBNT0RVTEUgIgogIAkJICAgICAiUFJPQ0VEVVJFIGF0ICVMIGFuZCBp dHMgaW50ZXJmYWNlIGluICVzIiwKICAJCSAgICAgJnN5bS0+ZGVjbGFyZWRf YXQsIG1vZHVsZV9uYW1lKTsKICAJICByZXR1cm4gZmFsc2U7CkluZGV4OiBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3N1Ym1vZHVsZV8xNC5mMDgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoqKiogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9zdWJtb2R1bGVfMTQuZjA4CShyZXZpc2lvbiAyMzYzNTYpCi0tLSBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3N1Ym1vZHVsZV8xNC5mMDgJKHdv cmtpbmcgY29weSkKKioqKioqKioqKioqKioqIGNvbnRhaW5zCioqKiAyNywz MyAqKioqCiAgICAgICAgICBDYWxsIHN1YjEgKHgpCiAgICAgIEVuZCBJZgog ICAgRW5kIFByb2NlZHVyZSBzdWIxCiEgICBtb2R1bGUgZnVuY3Rpb24gZmNu MSAoeCkgcmVzdWx0KHJlcykKICAgICAgaW50ZWdlciwgaW50ZW50IChpbm91 dCkgOjogeAogICAgICBpbnRlZ2VyIDo6IHJlcwogICAgICByZXMgPSB4IC0g MQotLS0gMjcsMzMgLS0tLQogICAgICAgICAgQ2FsbCBzdWIxICh4KQogICAg ICBFbmQgSWYKICAgIEVuZCBQcm9jZWR1cmUgc3ViMQohICAgcmVjdXJzaXZl IG1vZHVsZSBmdW5jdGlvbiBmY24xICh4KSByZXN1bHQocmVzKQogICAgICBp bnRlZ2VyLCBpbnRlbnQgKGlub3V0KSA6OiB4CiAgICAgIGludGVnZXIgOjog cmVzCiAgICAgIHJlcyA9IHggLSAxCkluZGV4OiBnY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL3N1Ym1vZHVsZV8xNi5mMDgKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQoqKiogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9zdWJtb2R1bGVf MTYuZjA4CShyZXZpc2lvbiAwKQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9zdWJtb2R1bGVfMTYuZjA4CSh3b3JraW5nIGNvcHkpCioqKioqKioq KioqKioqKgoqKiogMCAqKioqCi0tLSAxLDUzIC0tLS0KKyAhIHsgZGctZG8g Y29tcGlsZSB9CisgIQorICEgVGVzdHMgdGhlIGZpeCBmb3IgUFI3MTE1NiBp biB3aGljaCB0aGUgdmFsaWQgY29kZSAoZjcsIGY4IGFuZCBmOSBiZWxvdykK KyAhIHRyaWdnZXJlZCBhbiBlcnJvciwgd2hpbGUgdGhlIGludmFsaWQgY29k ZSAoZjEgdG8gZjYpIGNvbXBpbGVkLgorICEKKyAhIENvbnRyaWJ1dGVkIGJ5 IERhbWlhbiBSb3VzbiAgPGRhbWlhbkBzb3VyY2VyeWluc3RpdHV0ZS5vcmc+ CisgIQorIG1vZHVsZSBteV9pbnRlcmZhY2UKKyAgIGltcGxpY2l0IG5vbmUK KyAgIGludGVyZmFjZQorICAgICBtb2R1bGUgc3Vicm91dGluZSBmMQorICAg ICBlbmQgc3Vicm91dGluZQorICAgICBtb2R1bGUgc3Vicm91dGluZSBmMgor ICAgICBlbmQgc3Vicm91dGluZQorICAgICBtb2R1bGUgc3Vicm91dGluZSBm MworICAgICBlbmQgc3Vicm91dGluZQorICAgICBlbGVtZW50YWwgbW9kdWxl IHN1YnJvdXRpbmUgZjQKKyAgICAgZW5kIHN1YnJvdXRpbmUKKyAgICAgcHVy ZSBtb2R1bGUgc3Vicm91dGluZSBmNQorICAgICBlbmQgc3Vicm91dGluZQor ICAgICByZWN1cnNpdmUgbW9kdWxlIHN1YnJvdXRpbmUgZjYKKyAgICAgZW5k IHN1YnJvdXRpbmUKKyAgICAgZWxlbWVudGFsIG1vZHVsZSBzdWJyb3V0aW5l IGY3CisgICAgIGVuZCBzdWJyb3V0aW5lCisgICAgIHB1cmUgbW9kdWxlIHN1 YnJvdXRpbmUgZjgKKyAgICAgZW5kIHN1YnJvdXRpbmUKKyAgICAgcmVjdXJz aXZlIG1vZHVsZSBzdWJyb3V0aW5lIGY5CisgICAgIGVuZCBzdWJyb3V0aW5l CisgICBlbmQgaW50ZXJmYWNlCisgZW5kIG1vZHVsZQorIAorIHN1Ym1vZHVs ZShteV9pbnRlcmZhY2UpIG15X2ltcGxlbWVudGF0aW9uCisgICBpbXBsaWNp dCBub25lCisgY29udGFpbnMKKyAgICAgZWxlbWVudGFsIG1vZHVsZSBzdWJy b3V0aW5lIGYxICEgeyBkZy1lcnJvciAiTWlzbWF0Y2ggaW4gRUxFTUVOVEFM IGF0dHJpYnV0ZSIgfQorICAgICBlbmQgc3Vicm91dGluZQorICAgICBwdXJl IG1vZHVsZSBzdWJyb3V0aW5lIGYyICEgeyBkZy1lcnJvciAiTWlzbWF0Y2gg aW4gUFVSRSBhdHRyaWJ1dGUiIH0KKyAgICAgZW5kIHN1YnJvdXRpbmUKKyAg ICAgcmVjdXJzaXZlIG1vZHVsZSBzdWJyb3V0aW5lIGYzICEgeyBkZy1lcnJv ciAiTWlzbWF0Y2ggaW4gUkVDVVJTSVZFIGF0dHJpYnV0ZSIgfQorICAgICBl bmQgc3Vicm91dGluZQorICAgICBtb2R1bGUgc3Vicm91dGluZSBmNCAhIHsg ZGctZXJyb3IgIkVMRU1FTlRBTCBwcmVmaXgiIH0KKyAgICAgZW5kIHN1YnJv dXRpbmUKKyAgICAgbW9kdWxlIHN1YnJvdXRpbmUgZjUgISB7IGRnLWVycm9y ICJQVVJFIHByZWZpeCIgfQorICAgICBlbmQgc3Vicm91dGluZQorICAgICBt b2R1bGUgc3Vicm91dGluZSBmNiAhIHsgZGctZXJyb3IgIlJFQ1VSU0lWRSBw cmVmaXgiIH0KKyAgICAgZW5kIHN1YnJvdXRpbmUKKyAgICAgZWxlbWVudGFs IG1vZHVsZSBzdWJyb3V0aW5lIGY3CisgICAgIGVuZCBzdWJyb3V0aW5lCisg ICAgIHB1cmUgbW9kdWxlIHN1YnJvdXRpbmUgZjgKKyAgICAgZW5kIHN1YnJv dXRpbmUKKyAgICAgcmVjdXJzaXZlIG1vZHVsZSBzdWJyb3V0aW5lIGY5Cisg ICAgIGVuZCBzdWJyb3V0aW5lCisgZW5kIHN1Ym1vZHVsZQo= --001a114e7e302ef68c05343420f6--