From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com [IPv6:2607:f8b0:4864:20::52d]) by sourceware.org (Postfix) with ESMTPS id 052013858D20; Fri, 14 Apr 2023 08:18:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 052013858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pg1-x52d.google.com with SMTP id h193so8481180pgc.6; Fri, 14 Apr 2023 01:18:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681460306; x=1684052306; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=N40erK9UmLDwvZyotpYOrWQ3ZWiP6/By1q8f66VlfPs=; b=TibplHUFx1Gs3z+RCTUiJlPa3wWTwDJ5TT4AlBI7tnjPql2g/z6qMZjF4Ej8YvX2OL GDJhGjQSjbR9bT0wWthRQIokh2IJ+fZpP4Dim+8+liMXkYKX6UJNHr39oKhFxam/1GqC J0qalKuvBsJH3vhP3fP2bMEfPtjfTtCo6PbQbh+aodXdK3w7T0pHHoRxou89DygRb8n3 s7GWSPnz2lA1v/5Du0FYomZEeTX2N0rK3Qd5nZAQu+ZSqCJ6BvqBV09k7/98FrDrBjuY JGvrt6kI3an43lEHm+JqDWQUTw0FU1Sfy0CGa/kM4+01fOlqAm59DvFlaIPGRenziZ6+ Dz6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681460306; x=1684052306; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N40erK9UmLDwvZyotpYOrWQ3ZWiP6/By1q8f66VlfPs=; b=K+t91lDdrpZNNwdjiqXeV3+W0OhODo5ZXM44127T7g8XZ2P6qGyCi/8r8aQHxoTIH7 +IVxAJMSVPjQIqIsiXEbyfMzFkXAFi6sYXvtGWdXg8XhugrGIveVuz4SyRFJ8PBMr5a4 ZN6KcNpRMbll10kGISOsWVWimzEjeW9ni3wGJn4grIWuSrNbPm7T4ZTbFgZRUEiYqL/y 2thB0H98Xhn04qFk8knPqp0CT0QsLdfIiRPiI7dixuejOJKN377+18S2Ctk5X/37PZhA HL9DLsbjmHa1fY3iKbqXvEJKKMjq+l/riHDXT4mWmxHPbMI2tRAwzgiCxxM7jktj4R3J 9S7g== X-Gm-Message-State: AAQBX9fhqnecFrrEiczTq3EoXsH+xZjr8p+VZ4fLPs0mcWJ/A+49vWkU wJNPRkqhjZDnK3/1ZVC6K3o/nyHUGt2sLPOZ6nzoU/YerQU= X-Google-Smtp-Source: AKy350aMI7YF3Nsp8QZ8wIoDmJJoONCbdwONg0IfBZSspmf+eT/7koYSFxkhT9QvcFhc9V61vIfVbsGI0km5FwKhm68= X-Received: by 2002:a63:6c8:0:b0:503:77c9:45aa with SMTP id 191-20020a6306c8000000b0050377c945aamr507846pgg.9.1681460304723; Fri, 14 Apr 2023 01:18:24 -0700 (PDT) MIME-Version: 1.0 References: <2ef9c2f2-2b56-2dd1-15cb-ff3318ea1315@gmx.de> In-Reply-To: From: Paul Richard Thomas Date: Fri, 14 Apr 2023 09:18:13 +0100 Message-ID: Subject: Re: [Patch, fortran] PR109451 - ICE in gfc_conv_expr_descriptor with ASSOCIATE and substrings To: Harald Anlauf Cc: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="0000000000002c60d405f9477ce7" X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000002c60d405f9477ce7 Content-Type: multipart/alternative; boundary="0000000000002c60d205f9477ce5" --0000000000002c60d205f9477ce5 Content-Type: text/plain; charset="UTF-8" Hi Harald, The fix was trivial. An updated patch and testcase are attached. Thanks Paul Fortran: Fix some deferred character problems in associate [PR109451] 2023-04-14 Paul Thomas gcc/fortran PR fortran/109451 * trans-array.cc (gfc_conv_expr_descriptor): Guard expression character length backend decl before using it. Suppress the assignment if lhs equals rhs. * trans-io.cc (gfc_trans_transfer): Scalarize transfer of associate variables pointing to a variable. Add comment. * trans-stmt.cc (trans_associate_var): Remove requirement that the character length be deferred before assigning the value returned by gfc_conv_expr_descriptor. Also, guard the backend decl before testing with VAR_P. gcc/testsuite/ PR fortran/109451 * gfortran.dg/associate_61.f90 : New test On Thu, 13 Apr 2023 at 07:18, Paul Richard Thomas < paul.richard.thomas@gmail.com> wrote: > Hi Harald, > > That's interesting - the string length '.q' is not set for either of the > associate blocks. I'm onto it. > > Thanks > > Paul > > > On Wed, 12 Apr 2023 at 20:26, Harald Anlauf wrote: > >> Hi Paul, >> >> On 4/12/23 17:25, Paul Richard Thomas via Gcc-patches wrote: >> > Hi All, >> > >> > I think that the changelog says it all. OK for mainline? >> >> this looks almost fine, but still fails if one directly uses the >> dummy argument as the ASSOCIATE target, as in: >> >> program p >> implicit none >> character(4) :: c(2) = ["abcd","efgh"] >> call dcs0 (c) >> ! call dcs0 (["abcd","efgh"]) >> contains >> subroutine dcs0(a) >> character(len=*), intent(in) :: a(:) >> print *, size(a),len(a) >> associate (q => a(:)) >> print *, size(q),len(q) >> end associate >> associate (q => a(:)(:)) >> print *, size(q),len(q) >> end associate >> return >> end subroutine dcs0 >> end >> >> This prints e.g. >> >> 2 4 >> 2 0 >> 2 0 >> >> (sometimes I also get junk values for the character length). >> >> Can you please have another look? >> >> Thanks, >> Harald >> >> >> > Paul >> > >> > Fortran: Fix some deferred character problems in associate [PR109451] >> > >> > 2023-04-07 Paul Thomas >> > >> > gcc/fortran >> > PR fortran/109451 >> > * trans-array.cc (gfc_conv_expr_descriptor): Guard expression >> > character length backend decl before using it. Suppress the >> > assignment if lhs equals rhs. >> > * trans-io.cc (gfc_trans_transfer): Scalarize transfer of >> > associate variables pointing to a variable. Add comment. >> > >> > >> > gcc/testsuite/ >> > PR fortran/109451 >> > * gfortran.dg/associate_61.f90 : New test >> >> > > -- > "If you can't explain it simply, you don't understand it well enough" - > Albert Einstein > -- "If you can't explain it simply, you don't understand it well enough" - Albert Einstein --0000000000002c60d205f9477ce5-- --0000000000002c60d405f9477ce7 Content-Type: text/x-patch; charset="US-ASCII"; name="pr109451.diff" Content-Disposition: attachment; filename="pr109451.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lgga0usa1 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjIGIvZ2Nj L2ZvcnRyYW4vdHJhbnMtYXJyYXkuY2MKaW5kZXggZTE3MjU4MDgwMzMuLjdj MGJjZmU1Y2JiIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1hcnJh eS5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5jYwpAQCAtNzkz NCw4ICs3OTM0LDEyIEBAIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoZ2Zj X3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJICBlbHNlCiAJICAgIHRtcCA9 IHNlLT5zdHJpbmdfbGVuZ3RoOwogCi0JICBpZiAoZXhwci0+dHMuZGVmZXJy ZWQgJiYgVkFSX1AgKGV4cHItPnRzLnUuY2wtPmJhY2tlbmRfZGVjbCkpCi0J ICAgIGdmY19hZGRfbW9kaWZ5ICgmc2UtPnByZSwgZXhwci0+dHMudS5jbC0+ YmFja2VuZF9kZWNsLCB0bXApOworCSAgaWYgKGV4cHItPnRzLmRlZmVycmVk ICYmIGV4cHItPnRzLnUuY2wtPmJhY2tlbmRfZGVjbAorCSAgICAgICYmIFZB Ul9QIChleHByLT50cy51LmNsLT5iYWNrZW5kX2RlY2wpKQorCSAgICB7CisJ ICAgICAgaWYgKGV4cHItPnRzLnUuY2wtPmJhY2tlbmRfZGVjbCAhPSB0bXAp CisJICAgICAgICBnZmNfYWRkX21vZGlmeSAoJnNlLT5wcmUsIGV4cHItPnRz LnUuY2wtPmJhY2tlbmRfZGVjbCwgdG1wKTsKKwkgICAgfQogCSAgZWxzZQog CSAgICBleHByLT50cy51LmNsLT5iYWNrZW5kX2RlY2wgPSB0bXA7CiAJfQpA QCAtNzk5OCw3ICs4MDAyLDEzIEBAIGdmY19jb252X2V4cHJfZGVzY3JpcHRv ciAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJCX0KIAkgICAgfQog CX0KLQorICAgICAgaWYgKGV4cHItPnRzLnR5cGUgPT0gQlRfQ0hBUkFDVEVS CisJICAmJiBWQVJfUCAoVFlQRV9TSVpFX1VOSVQgKGdmY19nZXRfZWxlbWVu dF90eXBlIChUUkVFX1RZUEUgKHBhcm0pKSkpKQorCXsKKwkgIHRyZWUgZWxl bV9sZW4gPSBUWVBFX1NJWkVfVU5JVCAoZ2ZjX2dldF9lbGVtZW50X3R5cGUg KFRSRUVfVFlQRSAocGFybSkpKTsKKwkgIGdmY19hZGRfbW9kaWZ5ICgmbG9v cC5wcmUsIGVsZW1fbGVuLAorCQkJICBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQ RSAoZWxlbV9sZW4pLAkJCQkJICAgICBnZmNfZ2V0X2FycmF5X3NwYW4gKGRl c2MsIGV4cHIpKSk7CisJfQogICAgICAgLyogU2V0IHRoZSBzcGFuIGZpZWxk LiAgKi8KICAgICAgIHRtcCA9IE5VTExfVFJFRTsKICAgICAgIGlmIChHRkNf REVTQ1JJUFRPUl9UWVBFX1AgKFRSRUVfVFlQRSAoZGVzYykpKQpkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtaW8uY2MgYi9nY2MvZm9ydHJhbi90 cmFucy1pby5jYwppbmRleCA5YjU0ZDJmMGQzMS4uNjc2NTg3NjliOWUgMTAw NjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLWlvLmNjCisrKyBiL2djYy9m b3J0cmFuL3RyYW5zLWlvLmNjCkBAIC0yNjIwLDkgKzI2MjAsMTMgQEAgZ2Zj X3RyYW5zX3RyYW5zZmVyIChnZmNfY29kZSAqIGNvZGUpCiAJICBnY2NfYXNz ZXJ0IChyZWYgJiYgcmVmLT50eXBlID09IFJFRl9BUlJBWSk7CiAJfQogCisg ICAgICAvKiBUaGVzZSBleHByZXNzaW9ucyBkb24ndCBhbHdheXMgaGF2ZSB0 aGUgZHR5cGUgZWxlbWVudCBsZW5ndGggc2V0CisJIGNvcnJlY3RseSwgcmVu ZGVyaW5nIHRoZW0gdXNlbGVzcyBmb3IgYXJyYXkgdHJhbnNmZXIuICAqLwog ICAgICAgaWYgKGV4cHItPnRzLnR5cGUgIT0gQlRfQ0xBU1MKIAkgJiYgZXhw ci0+ZXhwcl90eXBlID09IEVYUFJfVkFSSUFCTEUKIAkgJiYgKChleHByLT5z eW10cmVlLT5uLnN5bS0+dHMudHlwZSA9PSBCVF9ERVJJVkVEICYmIGV4cHIt PnRzLmRlZmVycmVkKQorCSAgICAgfHwgKGV4cHItPnN5bXRyZWUtPm4uc3lt LT5hc3NvYworCQkgJiYgZXhwci0+c3ltdHJlZS0+bi5zeW0tPmFzc29jLT52 YXJpYWJsZSkKIAkgICAgIHx8IGdmY19leHByX2F0dHIgKGV4cHIpLnBvaW50 ZXIpKQogCWdvdG8gc2NhbGFyaXplOwogCmRpZmYgLS1naXQgYS9nY2MvZm9y dHJhbi90cmFucy1zdG10LmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5j YwppbmRleCBmNzg4NzU0NTVhNS4uYTFkOGEyNmY2NGYgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuY2MKKysrIGIvZ2NjL2ZvcnRyYW4v dHJhbnMtc3RtdC5jYwpAQCAtMTkzMCwxNSArMTkzMCwxMyBAQCB0cmFuc19h c3NvY2lhdGVfdmFyIChnZmNfc3ltYm9sICpzeW0sIGdmY193cmFwcGVkX2Js b2NrICpibG9jaykKICAgICAgIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAo JnNlLCBlKTsKIAogICAgICAgaWYgKHN5bS0+dHMudHlwZSA9PSBCVF9DSEFS QUNURVIKLQkgICYmIHN5bS0+dHMuZGVmZXJyZWQKIAkgICYmICFzeW0tPmF0 dHIuc2VsZWN0X3R5cGVfdGVtcG9yYXJ5CisJICAmJiBzeW0tPnRzLnUuY2wt PmJhY2tlbmRfZGVjbAogCSAgJiYgVkFSX1AgKHN5bS0+dHMudS5jbC0+YmFj a2VuZF9kZWNsKQogCSAgJiYgc2Uuc3RyaW5nX2xlbmd0aCAhPSBzeW0tPnRz LnUuY2wtPmJhY2tlbmRfZGVjbCkKLQl7Ci0JICBnZmNfYWRkX21vZGlmeSAo JnNlLnByZSwgc3ltLT50cy51LmNsLT5iYWNrZW5kX2RlY2wsCi0JCQkgIGZv bGRfY29udmVydCAoVFJFRV9UWVBFIChzeW0tPnRzLnUuY2wtPmJhY2tlbmRf ZGVjbCksCi0JCQkJCXNlLnN0cmluZ19sZW5ndGgpKTsKLQl9CisJZ2ZjX2Fk ZF9tb2RpZnkgKCZzZS5wcmUsIHN5bS0+dHMudS5jbC0+YmFja2VuZF9kZWNs LAorCQkJZm9sZF9jb252ZXJ0IChUUkVFX1RZUEUgKHN5bS0+dHMudS5jbC0+ YmFja2VuZF9kZWNsKSwKKwkJCQkgICAgICBzZS5zdHJpbmdfbGVuZ3RoKSk7 CiAKICAgICAgIC8qIElmIHdlIGRpZG4ndCBhbHJlYWR5IGRvIHRoZSBwb2lu dGVyIGFzc2lnbm1lbnQsIHNldCBhc3NvY2lhdGUtbmFtZQogCSBkZXNjcmlw dG9yIHRvIHRoZSBvbmUgZ2VuZXJhdGVkIGZvciB0aGUgdGVtcG9yYXJ5LiAg Ki8K --0000000000002c60d405f9477ce7 Content-Type: text/x-fortran; charset="US-ASCII"; name="pr109451.f90" Content-Disposition: attachment; filename="pr109451.f90" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lgga1gf01 ISB7IGRnLWRvIHJ1biB9CiEgVGVzdCBmaXhlcyBmb3IgUFIxMDk0NTEKISBD b250cmlidXRlZCBieSBIYXJhbGQgQW5sYXVmICA8YW5sYXVmQGdjYy5nbnUu b3JnPgohCnByb2dyYW0gcAogICBpbXBsaWNpdCBub25lCiAgIGNoYXJhY3Rl cig0KSA6OiBjKDIpID0gWyJhYmNkIiwiZWZnaCJdCiAgIGNhbGwgZGNzMyAo YykKICAgY2FsbCBkY3MwIChjKQpjb250YWlucwogIHN1YnJvdXRpbmUgZGNz MyAoYSkKICAgIGNoYXJhY3RlcihsZW49KiksIGludGVudChpbikgIDo6IGEo OikKICAgIGNoYXJhY3Rlcig6KSwgICAgIGFsbG9jYXRhYmxlIDo6IGIoOikK ICAgIGIgPSBhKDopCiAgICBjYWxsIHRlc3QgKGIsIGEsIDEpCiAgICBhc3Nv Y2lhdGUgKHEgPT4gYig6KSkgICAgISBubyBJQ0UgYnV0IHByaW50IHJlcGVh dGVkIGZpcnN0IGVsZW1lbnQKICAgICAgY2FsbCB0ZXN0IChxLCBhLCAyKQog ICAgICBwcmludCAqLCBxCiAgICAgIHEgPSBxKDopKDI6MykKICAgIGVuZCBh c3NvY2lhdGUKICAgIGNhbGwgdGVzdCAoYiwgWyJiYyAgIiwiZmcgICJdLCA0 KQogICAgYiA9IGEoOikKICAgIGFzc29jaWF0ZSAocSA9PiBiKDopKDopKSAh IElDRQogICAgICBjYWxsIHRlc3QgKHEsIGEsIDMpCiAgICAgIGFzc29jaWF0 ZSAociA9PiBxKDopKDE6MykpCiAgICAgICAgY2FsbCB0ZXN0IChyLCBhKDop KDE6MyksIDUpCiAgICAgIGVuZCBhc3NvY2lhdGUKICAgIGVuZCBhc3NvY2lh dGUKICAgIGFzc29jaWF0ZSAocSA9PiBiKDopKDI6MykpCiAgICAgIGNhbGwg dGVzdCAocSwgYSg6KSgyOjMpLCA2KQogICAgZW5kIGFzc29jaWF0ZQogIGVu ZCBzdWJyb3V0aW5lIGRjczMKCiEgVGhlIGFzc29jaWF0ZSB2YXJzIGluIGRz YzAgaGFkIHN0cmluZyBsZW5ndGggbm90IHNldAogIHN1YnJvdXRpbmUgZGNz MCAoYSkKICAgIGNoYXJhY3RlcihsZW49KiksIGludGVudChpbikgOjogYSg6 KQogICAgYXNzb2NpYXRlIChxID0+IGEpCiAgICAgIGNhbGwgdGVzdCAocSwg YSwgNykKICAgIGVuZCBhc3NvY2lhdGUKICAgIGFzc29jaWF0ZSAocSA9PiBh KDopKQogICAgICBjYWxsIHRlc3QgKHEsIGEsIDgpCiAgICBlbmQgYXNzb2Np YXRlCiAgICBhc3NvY2lhdGUgKHEgPT4gYSg6KSg6KSkKICAgICAgY2FsbCB0 ZXN0IChxLCBhLCA5KQogICAgZW5kIGFzc29jaWF0ZQogIGVuZCBzdWJyb3V0 aW5lIGRjczAKCiAgc3Vicm91dGluZSB0ZXN0ICh4LCB5LCBpKQogICAgY2hh cmFjdGVyKGxlbj0qKSwgaW50ZW50KGluKSA6OiB4KDopLCB5KDopCiAgICBp bnRlZ2VyLCBpbnRlbnQoaW4pIDo6IGkKICAgIGlmIChhbnkgKHggLm5lLiB5 KSkgc3RvcCBpCiAgZW5kIHN1YnJvdXRpbmUgdGVzdAplbmQgcHJvZ3JhbSBw CiEgeyBkZy1vdXRwdXQgIiBhYmNkZWZnaCIgfQo= --0000000000002c60d405f9477ce7--