From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100551 invoked by alias); 8 Oct 2018 19:45:44 -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 99456 invoked by uid 89); 8 Oct 2018 19:45:05 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.1 required=5.0 tests=BAYES_00,GARBLED_SUBJECT,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=Jerry, delisle, DeLisle, H*Ad:U*burnus X-HELO: mx-relay16-hz1.antispameurope.com Received: from mx-relay16-hz1.antispameurope.com (HELO mx-relay16-hz1.antispameurope.com) (94.100.132.216) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 08 Oct 2018 19:45:02 +0000 Return-Path: Received: from s041.bre.qsc.de ([195.90.7.81]) by mx-relay16-hz1.antispameurope.com; Mon, 08 Oct 2018 21:44:59 +0200 Received: from tux.net-b.de (port-92-194-24-29.dynamic.qsc.de [92.194.24.29]) by s041.bre.qsc.de (Postfix) with ESMTPSA id BCB012C00C7; Mon, 8 Oct 2018 21:44:57 +0200 (CEST) To: fortran@gcc.gnu.org From: Tobias Burnus Subject: =?UTF-8?Q?=5bPatch=2c_Fortran=5d_PR_fortran/83522_=e2=80=93_reject_?= =?UTF-8?Q?array-valued_substrings?= Message-ID: Date: Mon, 08 Oct 2018 19:45:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------A02970E78EA627183DF5A792" X-cloud-security-sender:burnus@net-b.de X-cloud-security-recipient:fortran@gcc.gnu.org X-cloud-security-Virusscan:CLEAN X-cloud-security-disclaimer: This E-Mail was scanned by E-Mailservice on mx-relay16-hz1.antispameurope.com with 8050E501EB2 X-cloud-security-connect: s041.bre.qsc.de[195.90.7.81], TLS=1, IP=195.90.7.81 X-cloud-security:scantime:.2355 X-IsSubscribed: yes X-SW-Source: 2018-10/txt/msg00037.txt.bz2 This is a multi-part message in MIME format. --------------A02970E78EA627183DF5A792 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 1368 Hi all, as the PR (and the attached testcase) shows, gfortran doesn't handle noncontiguous access with substrings. Namely, "str_array(:)(1:5)" is mishandled (segfault while building the "tree" as expr == NULL). As Jerry has dug up in the standard (F2008, R610 alias F2018, R908), substrings are only permitted on scalars (or array elements). – [gfortran has some partial support for noncontiguous memory as actual argument the now rejected test cases show.] In words of the standard (here: F2018): 9.4.1  Substrings A substring is a contiguous portion of a character string (7.4.4). R908   substring   is   parent-string  ( substring-range ) R909   parent-string             is   scalar-variable-name             or  array-element             or  coindexed-named-object             or  scalar-structure-component             or  scalar-constant The patch adds a check to the variable resolving – it comes too late to print a nice error message for "string(:)(:)"; that statement gets matched unsuccessfully and at the end the buffered error message of match_variable (unexpected character "(") gets printed. – One could reject it earlier but the code doesn't seem to be that nice. (See PR for a variant.) Build and regtested on x86_64-linux. OK for the trunk? Cheers Tobias --------------A02970E78EA627183DF5A792 Content-Type: text/x-patch; name="array_substring.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="array_substring.diff" Content-length: 6767 MjAxOC0xMC0wOCAgVG9iaWFzIEJ1cm51cyA8YnVybnVzQG5ldC1iLmRlPgoK CVBSIGZvcnRyYW4vODM1MjIKCSogcmVzb2x2ZS5jIChyZXNvbHZlX3JlZik6 IFJlamVjdCBub25zY2FsYXIKCXN1YnN0cmluZyByZWZlcmVuY2VzLgoKICAg ICAgICBQUiBmb3J0cmFuLzgzNTIyCgkqIGdmb3J0cmFuLmRnL2FjdHVhbF9h cnJheV9zdWJzdHJfMS5mOTA6IEFkZCBkZy1lcnJvciwKCWNoYW5nZSB0byBk Zy1kbyBjb21waWxlLgoJKiBnZm9ydHJhbi5kZy9hY3R1YWxfYXJyYXlfc3Vi c3RyXzIuZjkwOiBEaXR0by4KCSogZ2ZvcnRyYW4uZGcvYXJyYXlfaW5pdGlh bGl6ZXJfMS5mOTA6IFVzZSBhcnJheQoJZWxlbWVudCBub3Qgc2l6ZS1vbmUg c2VjdGlvbi4KCSogZ2ZvcnRyYW4uZGcvYXJyYXlfc3Vic3RyaW5nLmY5MDog TmV3LgoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuYyBiL2dj Yy9mb3J0cmFuL3Jlc29sdmUuYwppbmRleCA4N2U2NWRmNWY0ZS4uNGVjODgx ZTVkNzggMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3Jlc29sdmUuYworKysg Yi9nY2MvZm9ydHJhbi9yZXNvbHZlLmMKQEAgLTUxMjksNiArNTEyOSwxMyBA QCByZXNvbHZlX3JlZiAoZ2ZjX2V4cHIgKmV4cHIpCiAJICBicmVhazsKIAog CWNhc2UgUkVGX1NVQlNUUklORzoKKwkgIC8qIEYyMDA4LCBSNjEwIGFsaWFz IEYyMDE4LCBSOTA4LiAgKi8KKwkgIGlmIChjdXJyZW50X3BhcnRfZGltZW5z aW9uIHx8IHNlZW5fcGFydF9kaW1lbnNpb24pCisJICAgIHsKKwkgICAgICBn ZmNfZXJyb3IgKCJTdWJzdHJpbmcgcmVmZXJlbmNlIG9mIG5vbnNjYWxhciBu b3QgcGVybWl0dGVkIGF0ICVMIiwKKwkJCSAmZXhwci0+d2hlcmUpOworCSAg ICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQogCSAgYnJlYWs7CiAJfQogCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FjdHVhbF9h cnJheV9zdWJzdHJfMS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2FjdHVhbF9hcnJheV9zdWJzdHJfMS5mOTAKaW5kZXggN2MxMGM3MDIwZWIu LmQ5OTJmNDVmNDY1IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2FjdHVhbF9hcnJheV9zdWJzdHJfMS5mOTAKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9hY3R1YWxfYXJyYXlfc3Vic3RyXzEuZjkw CkBAIC0xLDE1ICsxLDE3IEBACi0hIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1k byBjb21waWxlIH0KICEgVGVzdCBmaXggb2YgUFIyODExOCwgaW4gd2hpY2gg YSBzdWJzdHJpbmcgcmVmZXJlbmNlIHRvIGFuCiAhIGFjdHVhbCBhcmd1bWVu dCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB3b3VsZCBjYXVzZSBhIHNlZ2Zh dWx0LgogIQorISBSZXZpc2VkIGZvciBQUiBmb3J0cmFuLzgzNTIyCishCiAh IENvbnRyaWJ1dGVkIGJ5IFBhdWwgVGhvbWFzICA8cGF1bHRAZ2NjLmdudS5v cmc+CiAhCiBwcm9ncmFtIGdmY2J1ZzMzDQogICBjaGFyYWN0ZXIoMTIpIDo6 IGEoMikKICAgYSgxKSA9ICJhYmNkZWZnaGlqa2wiCiAgIGEoMikgPSAibW5v cHFyc3R1dnd4IgotICBjYWxsIGZvbyAoKGEoMjoxOi0xKSg2OikpKQotICBj YWxsIGJhciAoKGEoOikoNzoxMSkpKQorICBjYWxsIGZvbyAoKGEoMjoxOi0x KSg2OikpKSAhIHsgZGctZXJyb3IgIlN1YnN0cmluZyByZWZlcmVuY2Ugb2Yg bm9uc2NhbGFyIG5vdCBwZXJtaXR0ZWQiIH0KKyAgY2FsbCBiYXIgKChhKDop KDc6MTEpKSkgISB7IGRnLWVycm9yICJTdWJzdHJpbmcgcmVmZXJlbmNlIG9m IG5vbnNjYWxhciBub3QgcGVybWl0dGVkIiB9CiBjb250YWlucwogICBzdWJy b3V0aW5lIGZvbyAoY2hyKQogICAgIGNoYXJhY3Rlcig3KSA6OiBjaHIoOikK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYWN0dWFs X2FycmF5X3N1YnN0cl8yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvYWN0dWFsX2FycmF5X3N1YnN0cl8yLmY5MAppbmRleCBmZWQ1MTM0MmVl MC4uOWJjZDE5YzNmYjAgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvYWN0dWFsX2FycmF5X3N1YnN0cl8yLmY5MAorKysgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FjdHVhbF9hcnJheV9zdWJzdHJfMi5m OTAKQEAgLTEsMTAgKzEsMTIgQEAKLSEgeyBkZy1kbyBydW4gfQorISB7IGRn LWRvIGNvbXBpbGUgfQogISBUZXN0cyB0aGUgZml4IGZvciBwcjI4MTc0LCBp biB3aGljaCB0aGUgZml4IGZvciBwcjI4MTE4IHdhcwogISBjb3JydXB0aW5n IHRoZSBjaGFyYWN0ZXIgbGVuZ3RocyBvZiBhcnJheXMgdGhhdCBzaGFyZWQg YQogISBjaGFyYWN0ZXIgbGVuZ3RoIHN0cnVjdHVyZS4gIEluIGFkZGl0aW9u LCBpbiBkZXZlbG9waW5nIHRoZQogISBmaXgsIGl0IHdhcyBub3RlZCB0aGF0 IGludGVudChvdXQvaW5vdXQpIGFyZ3VtZW50cyB3ZXJlIG5vdAogISBnZXR0 aW5nIHdyaXR0ZW4gYmFjayB0byB0aGUgY2FsbGluZyBzY29wZS4KICEKKyEg UmV2aXNlZCBmb3IgUFIgZm9ydHJhbi84MzUyMgorIQogISBCYXNlZCBvbiB0 aGUgdGVzdHNjYXNlIGJ5IEhhcmFsZCBBbmxhdWYgIDxhbmxhdWZAZ214LmRl PgogIQogcHJvZ3JhbSBwcjI4MTc0CkBAIC0yMCw3ICsyMiw3IEBAIHByb2dy YW0gcHIyODE3NAogICBuID0gbSAtIDQKIAogISBNYWtlIHN1cmUgdGhhdCB2 YXJpYWJsZSBzdWJzdHJpbmcgcmVmZXJlbmNlcyB3b3JrLgotICBjYWxsIGZv byAoYSg6KShtOm0rNSksIGMoOikobjptKzIpLCBkKDopKDU6OSkpCisgIGNh bGwgZm9vIChhKDopKG06bSs1KSwgYyg6KShuOm0rMiksIGQoOikoNTo5KSkg ISB7IGRnLWVycm9yICJTdWJzdHJpbmcgcmVmZXJlbmNlIG9mIG5vbnNjYWxh ciBub3QgcGVybWl0dGVkIiB9CiAgIGlmIChhbnkgKGEgLm5lLiB0ZXN0c3Ry aW5nKSkgU1RPUCAxCiAgIGlmIChhbnkgKGIgLm5lLiB0ZXN0c3RyaW5nKSkg U1RPUCAyCiAgIGlmIChhbnkgKGMgLm5lLiAoLyJhYjQ1Njc4OSNoaWoiLCAm CkBAIC0zNyw4ICszOSw3IEBAIGNvbnRhaW5zCiAhIFRoaXMgbmV4dCBpcyBu b3QgcmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkIGJ1dCB0ZXN0cyB0aGUKICEg ZnVuY3Rpb25pbmcgb2YgdGhlIGdmb3J0cmFuIGltcGxlbWVudGF0aW9uLgog ISAgIGlmIChhbGwgKHgoOikoMzo3KSAuZXEuIHkpKSBTVE9QIDUKLSAgICB4 ID0gZm9vc3RyaW5nICg6KSg1IDogNCArIGxlbiAoeCkpCi0gICAgeSA9IGZv b3N0cmluZyAoOikoMyA6IDIgKyBsZW4gKHkpKQorICAgIHggPSBmb29zdHJp bmcgKDopKDUgOiA0ICsgbGVuICh4KSkgISB7IGRnLWVycm9yICJTdWJzdHJp bmcgcmVmZXJlbmNlIG9mIG5vbnNjYWxhciBub3QgcGVybWl0dGVkIiB9Cisg ICAgeSA9IGZvb3N0cmluZyAoOikoMyA6IDIgKyBsZW4gKHkpKSAhIHsgZGct ZXJyb3IgIlN1YnN0cmluZyByZWZlcmVuY2Ugb2Ygbm9uc2NhbGFyIG5vdCBw ZXJtaXR0ZWQiIH0KICAgZW5kIHN1YnJvdXRpbmUgZm9vCiBlbmQgcHJvZ3Jh bSBwcjI4MTc0Ci0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvYXJyYXlfaW5pdGlhbGl6ZXJfMS5mOTAgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2FycmF5X2luaXRpYWxpemVyXzEuZjkwCmluZGV4IGQ0 ZjVlOTQwYzEwLi4yOGM5MjcyZjNhYyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9hcnJheV9pbml0aWFsaXplcl8xLmY5MAorKysg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5X2luaXRpYWxpemVy XzEuZjkwCkBAIC0xOCw3ICsxOCw3IEBACiANCiAgIGNoYXJhY3Rlcig0KSwg cGFyYW1ldGVyIDo6IGNocig0KSA9ICgvImFiY2QiLCAiZWZnaCIsICJpamts IiwgIm1ub3AiLykNCiAgIGNoYXJhY3Rlcig0KSwgcGFyYW1ldGVyIDo6IGNo cnMgPSBjaHIoaWkpKDI6MykvL2NocigyKShpaS0zOmlpLTIpIA0KLSAgY2hh cmFjdGVyKDQpLCBwYXJhbWV0ZXIgOjogY2hydCgyKSA9ICgvY2hyKDI6Miko MjozKSwgY2hyKGlpLTEpKDM6aWkpLykNCisgIGNoYXJhY3Rlcig0KSwgcGFy YW1ldGVyIDo6IGNocnQoMikgPSAoL2NocigyKSgyOjMpLCBjaHIoaWktMSko MzppaSkvKQ0KICAgY2hhcmFjdGVyKDIpLCBwYXJhbWV0ZXIgOjogY2hyeCgy KSA9ICgvKGNocihpKShpOmkrMSksIGk9MiwzKS8pDQogDQogICBpZiAoYW55 ICh5IC5uZS4gKC81LiwgNi4sIDE1LiwgMTYuLykpKSBTVE9QIDENCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5X3N1YnN0 cmluZy5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5X3N1 YnN0cmluZy5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmVhODA1NTZjZmMxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9hcnJheV9zdWJzdHJpbmcuZjkwCkBAIC0w LDAgKzEsMTcgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEKKyEgUFIgZm9y dHJhbi84MzUyMgorIQorISBDb250cmlidXRlZCBieSB1cmJhbmpvc3QgYW5k IEplcnJ5IERlTGlzbGUKKyEKK3Byb2dyYW0gdGVzdGl0CisgIGNoYXJhY3Rl cihsZW49OiksYWxsb2NhdGFibGUgOjogc3RyaW5ncyg6KQorICBpbnRlZ2Vy IDo6IGkKKyAgc3RyaW5ncz1bY2hhcmFjdGVyKGxlbj0yKSA6OiAnQUEnLCdC QiddCisgIHdyaXRlKCosKilzdHJpbmdzKDopKDopICAhIHsgZGctZXJyb3Ig IlN1YnN0cmluZyByZWZlcmVuY2Ugb2Ygbm9uc2NhbGFyIG5vdCBwZXJtaXR0 ZWQiIH0KKyAgIXN0cmluZ3MoOikoOikgISBQYXJzZSBlcnJvcjogIkludmFs aWQgY2hhcmFjdGVyIGluIG5hbWUiCisgIHN0cmluZ3MoOikoOikgPSAneCcg ICAhIHsgZGctZXJyb3IgIlN1YnN0cmluZyByZWZlcmVuY2Ugb2Ygbm9uc2Nh bGFyIG5vdCBwZXJtaXR0ZWQiIH0KKyAgZG8gaT0xLCBzaXplKHN0cmluZ3Mp CisgICAgd3JpdGUoKiwqKXN0cmluZ3MoaSkoOikgICEgVGhpcyBpcyB2YWxp ZCBhbmQgd29ya3MKKyAgZW5kIGRvCitlbmQgcHJvZ3JhbSB0ZXN0aXQK --------------A02970E78EA627183DF5A792--