From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 65066 invoked by alias); 17 Oct 2018 10:33:03 -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 65047 invoked by uid 89); 17 Oct 2018 10:33:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-6.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=Wrong, 58618, vladimirfukagmailcom, assoc X-HELO: mail-yb1-f172.google.com Received: from mail-yb1-f172.google.com (HELO mail-yb1-f172.google.com) (209.85.219.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Oct 2018 10:33:00 +0000 Received: by mail-yb1-f172.google.com with SMTP id o8-v6so10137238ybk.13; Wed, 17 Oct 2018 03:33:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=8l8bSnIpegpEcD06/Dtaqh/Ai4D/E/Ru69BC5uRUU04=; b=ikt4BRF+KTsq0DJ8TuWGxOM3naD2N2fZeMU6xQWg8ef5JuSqQDvaVY22PM2iueKML3 3b7+Y8NUwObaPKK3gtV18Y0TMztXjBT3DrpBaCSIR1xPU6PGefMeuGmBpZ1YqKsB6Wpx fibMR5ALIqaG/Eeou3+kyKj+pfouCyzElX6l4b/Mqt1SJ8SlUdyUJrniB9oEJ00oce2k qbYPtS/l0MUeF/AdRqePPeibIFJ3sYyfVWOmeNFCGg4AQQOGzaPdIWKq2d1LXzK9ypoM sAOMyTXNwVDIOuM70vyf7iWR2u1zmWy92zoWjF3SgPS3gdcLcbl94wLQI/UuBWpo0WwI QKmg== MIME-Version: 1.0 From: Paul Richard Thomas Date: Wed, 17 Oct 2018 10:33:00 -0000 Message-ID: Subject: [Patch, fortran] PR58618 - Wrong code with character substring and ASSOCIATE To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="000000000000a64e3705786a31a8" X-IsSubscribed: yes X-SW-Source: 2018-10/txt/msg00080.txt.bz2 --000000000000a64e3705786a31a8 Content-Type: text/plain; charset="UTF-8" Content-length: 1073 This problem concerned associate targets being substrings. It turns out that they are returned as pointer types (with a different cast for unity based substrings ***sigh***) and so can be assigned directly to the associate name. The patch quite simply removed the condition that such targets be allocatable, pointer or dummy. I noticed in the course of working up the testcase that character (:), pointer :: ptr => NULL() character (6), target :: tgt = 'lmnopq' ptr => tgt print *, len (ptr), ptr end ICEs on the NULL initialization of the pointer but works fine if this is removed. Has this already been posted as a PR? Bootstrapped and regtested on FC28/x86_64 - OK for trunk? Paul 2018-10-17 Paul Thomas PR fortran/58618 * trans-stmt.c (trans_associate_var): All strings that return as pointer types can be assigned directly to the associate name so remove 'attr' and the condition that uses it. 2018-10-17 Paul Thomas PR fortran/58618 * gfortran.dg/associate_45.f90 : New test. --000000000000a64e3705786a31a8 Content-Type: text/x-patch; charset="US-ASCII"; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jnd0pgar0 Content-length: 3547 SW5kZXg6IGdjYy9mb3J0cmFuL3RyYW5zLXN0bXQuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CioqKiBnY2MvZm9ydHJhbi90cmFucy1zdG10LmMJKHJldmlz aW9uIDI2NTIzMSkKLS0tIGdjYy9mb3J0cmFuL3RyYW5zLXN0bXQuYwkod29y a2luZyBjb3B5KQoqKioqKioqKioqKioqKiogdHJhbnNfYXNzb2NpYXRlX3Zh ciAoZ2ZjX3N5bWJvbCAqc3ltLCBnZgoqKiogMTY1NiwxNjYyICoqKioKICAg IGJvb2wgbmVlZF9sZW5fYXNzaWduOwogICAgYm9vbCB3aG9sZV9hcnJheSA9 IHRydWU7CiAgICBnZmNfcmVmICpyZWY7Ci0gICBzeW1ib2xfYXR0cmlidXRl IGF0dHI7CiAgCiAgICBnY2NfYXNzZXJ0IChzeW0tPmFzc29jKTsKICAgIGUg PSBzeW0tPmFzc29jLT50YXJnZXQ7Ci0tLSAxNjU2LDE2NjEgLS0tLQoqKioq KioqKioqKioqKiogdHJhbnNfYXNzb2NpYXRlX3ZhciAoZ2ZjX3N5bWJvbCAq c3ltLCBnZgoqKiogMTkxNiwxOTI0ICoqKioKICAJICAgIH0KICAJfQogIAot ICAgICAgIGF0dHIgPSBnZmNfZXhwcl9hdHRyIChlKTsKICAgICAgICBpZiAo c3ltLT50cy50eXBlID09IEJUX0NIQVJBQ1RFUiAmJiBlLT50cy50eXBlID09 IEJUX0NIQVJBQ1RFUgotIAkgICYmIChhdHRyLmFsbG9jYXRhYmxlIHx8IGF0 dHIucG9pbnRlciB8fCBhdHRyLmR1bW15KQogIAkgICYmIFBPSU5URVJfVFlQ RV9QIChUUkVFX1RZUEUgKHNlLmV4cHIpKSkKICAJewogIAkgIC8qIFRoZXNl IGFyZSBwb2ludGVyIHR5cGVzIGFscmVhZHkuICAqLwotLS0gMTkxNSwxOTIx IC0tLS0KKioqKioqKioqKioqKioqIHRyYW5zX2Fzc29jaWF0ZV92YXIgKGdm Y19zeW1ib2wgKnN5bSwgZ2YKKioqIDE5MjYsMTkzMyAqKioqCiAgCX0KICAg ICAgICBlbHNlCiAgCXsKISAgICAgICAgICAgdG1wID0gVFJFRV9UWVBFIChz eW0tPmJhY2tlbmRfZGVjbCk7CiEgICAgICAgICAgIHRtcCA9IGdmY19idWls ZF9hZGRyX2V4cHIgKHRtcCwgc2UuZXhwcik7CiAgCX0KICAKICAgICAgICBn ZmNfYWRkX21vZGlmeSAoJnNlLnByZSwgc3ltLT5iYWNrZW5kX2RlY2wsIHRt cCk7Ci0tLSAxOTIzLDE5MzAgLS0tLQogIAl9CiAgICAgICAgZWxzZQogIAl7 CiEgCSAgdG1wID0gVFJFRV9UWVBFIChzeW0tPmJhY2tlbmRfZGVjbCk7CiEg CSAgdG1wID0gZ2ZjX2J1aWxkX2FkZHJfZXhwciAodG1wLCBzZS5leHByKTsK ICAJfQogIAogICAgICAgIGdmY19hZGRfbW9kaWZ5ICgmc2UucHJlLCBzeW0t PmJhY2tlbmRfZGVjbCwgdG1wKTsKSW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvYXNzb2NpYXRlXzQ1LmY5MAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CioqKiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fzc29jaWF0ZV80 NS5mOTAJKG5vbmV4aXN0ZW50KQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9hc3NvY2lhdGVfNDUuZjkwCSh3b3JraW5nIGNvcHkpCioqKioqKioq KioqKioqKgoqKiogMCAqKioqCi0tLSAxLDM4IC0tLS0KKyAhIHsgZGctZG8g cnVuIH0KKyAhCisgISBUZXN0IHRoZSBmaXggZm9yIFBSNTg2MTggYnkgY2hl Y2tpbmcgdGhhdCBzdWJzdHJpbmcgYXNzb2NpYXRlIHRhcmdldHMKKyAhIHdv cmsgY29ycmVjdGx5LgorICEKKyAhIENvbnRyaWJ1dGVkIGJ5IFZsYWRpbWly IEZ1a2EgIDx2bGFkaW1pci5mdWthQGdtYWlsLmNvbT4KKyAhCisgICAgIGNo YXJhY3Rlcig1KSA6OiBzKDIpID0gWydhYmNkZScsJ2ZnaGlqJ10KKyAgICAg Y2hhcmFjdGVyICg2KSwgcG9pbnRlciA6OiBwdHIgPT4gTlVMTCgpCisgICAg IGNoYXJhY3RlciAoNiksIHRhcmdldCA6OiB0Z3QgPSAnbG1ub3BxJworIAor ICAgICBhc3NvY2lhdGUgKHg9PnMoMikoMzo0KSkKKyAgICAgICBpZiAoeCAu bmUuICdoaScpIHN0b3AgMQorICAgICAgIHggPSAndXYnCisgICAgIGVuZCBh c3NvY2lhdGUKKyAgICAgaWYgKGFueSAocyAubmUuIFsnYWJjZGUnLCdmZ3V2 aiddKSkgc3RvcCAyCisgCisgISBVbml0eSBiYXNlZCBzdWJzdHJpbmdzIGFy ZSBjYXN0IGRpZmZlcmVudGx5LiAgKi8KKyAgICAgYXNzb2NpYXRlICh4PT5z KDEpKDE6NCkpCisgICAgICAgaWYgKHggLm5lLiAnYWJjZCcpIHN0b3AgMwor ICAgICAgIHgoMjozKSA9ICd3eCcKKyAgICAgZW5kIGFzc29jaWF0ZQorICAg ICBpZiAoYW55IChzIC5uZS4gWydhd3hkZScsJ2ZndXZqJ10pKSBzdG9wIDQK KyAKKyAhIE1ha2Ugc3VyZSB0aGF0IHBvc3NpYmxlIG1pc2lkZW50aWZpY2F0 aW9ucyBkbyBub3Qgb2NjdXIuCisgICAgIHB0ciA9PiB0Z3QKKyAgICAgYXNz b2NpYXRlICh4PT5wdHIpCisgICAgICAgaWYgKHggLm5lLiAnbG1ub3BxJykg c3RvcCA1CisgICAgICAgeCgyOjMpID0gJ3d4JworICAgICBlbmQgYXNzb2Np YXRlCisgICAgIGlmICh0Z3QgLm5lLiAnbHd4b3BxJykgc3RvcCA2CisgCisg ICAgIGFzc29jaWF0ZSAoeD0+cHRyKDU6NikpCisgICAgICAgaWYgKHggLm5l LiAncHEnKSBzdG9wIDcKKyAgICAgICB4ID0gJ3d4JworICAgICBlbmQgYXNz b2NpYXRlCisgICAgIGlmICh0Z3QgLm5lLiAnbHd4b3d4Jykgc3RvcCA4Cisg ICBlbmQK --000000000000a64e3705786a31a8--