From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) by sourceware.org (Postfix) with ESMTPS id 5F7C7389246D for ; Wed, 27 Jan 2021 19:38:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5F7C7389246D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=structura.bio Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hsnyder@structura.bio Received: by mail-lj1-x22a.google.com with SMTP id r14so3521420ljc.2 for ; Wed, 27 Jan 2021 11:38:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=structura.bio; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=d6nSmTuPjBn4V4YMK+aycynsd3O4jQDwubGpgWkkaZ0=; b=l9FUouFcPBFke+KMQebl8/X0U9YOzH42H6CaOen5Njy1B4T4329JKJ4g0aB5TpxKdT vEc1KaFllYvfn/Daah8JnYRotdcpRTNshXnvX8oDmdqSr1GpfxkOtm/iK5cA6oKGsie+ KgEc+KY+jaK85u4WbwOZ7yPSUdXEAfdPGhfz5BQxDfFuNjOjwwCuaAxhanTX4xxWFyXn bTdpVjzYNmUcWmVpBtkXgAPuOuEjfxRQ+aruuxXVedYDOQZ4hMKHF+DTbiudP1Td1+XZ btbKTaBj1d/irJ2t+cJ5LnMJacp2AoSlGw6mhsJBFCmZM/bF3NZ+gfN8FafwoaHHjxzz e5zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=d6nSmTuPjBn4V4YMK+aycynsd3O4jQDwubGpgWkkaZ0=; b=VtMVBQFdJXRUzK/03NHiQJ9e+YRX+qRAo4rY9MYmGPIYpBY3Ozhvsgc2ne91XZLIzs WRwIeCLqimYMedUtFIDlp/KuLiJKs2G6y8SLY+aeZ/cQ3N0IXtkjBs7RgHnpsmb+AV5u Bvspk5tMCjgdTOUUwhZvRaCVne5rOWDyt5l4f756nNk4a5dFnDtovl3mOmf7p8xw9Dyw FK2Kb1KSI0s9FmoGZSt8HIoe4kCRVbWMysV5FRzUFTG84N6tBlD4kIZ0xWn0PrVWtjSC oU3PcZ4iFCrDmUhyQ6LesXaybGjCfJuswtFjIQbVYzalhllwjfumHerBp2BuT5u0BiFB ojQw== X-Gm-Message-State: AOAM533vxgD/63pWDLNpOxb1uWpSfjiSZDktGBPEaS9632mLP79cFNwJ EQIF5GQrU4AAPx4FXv74FWO1MfkIkykHfg1trFauKQ== X-Google-Smtp-Source: ABdhPJzwAn6aOyUScMa8I0gIB3GjEMM6H/wOJtAxeOi30/hheP/hYxczPSGnPkSishjKxPP+iOnMkMqs1BVPqDuAkqs= X-Received: by 2002:a2e:a409:: with SMTP id p9mr6205489ljn.281.1611776296751; Wed, 27 Jan 2021 11:38:16 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Harris Snyder Date: Wed, 27 Jan 2021 14:38:04 -0500 Message-ID: Subject: Re: PR fortran/93524 - rank >= 3 array stride incorrectly set in CFI_establish To: Tobias Burnus , fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000a0a19005b9e6e915" X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jan 2021 19:38:20 -0000 --000000000000a0a19005b9e6e915 Content-Type: text/plain; charset="UTF-8" Hi all, Now that my copyright assignment is complete, I'm submitting this fix. Test cases are included. OK for master? I do not have write access, so someone will need to commit this for me. Regards, Harris libgfortran/ChangeLog: * runtime/ISO_Fortran_binding.c (CFI_establish): fixed strides for rank >2 arrays gcc/testsuite/ChangeLog: * gfortran.dg/ISO_Fortran_binding_18.c: New test. * gfortran.dg/ISO_Fortran_binding_18.f90: New test. On Wed, Jan 13, 2021 at 2:10 PM Harris Snyder wrote: > > Hi Tobias / all, > > Further related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93524 > `sm` is being incorrectly computed in CFI_establish. Take a look at > the diff below - we are currently only using the extent of the > previous rank to assign `sm`, instead of all previous ranks. Have I > got this right, or am I missing something / does this need to be > handled differently? I can offer some test cases and submit a proper > patch if we think this solution is OK... > > Thanks, > Harris > > diff --git a/libgfortran/runtime/ISO_Fortran_binding.c > b/libgfortran/runtime/ISO_Fortran_binding.c > index 3746ec1c681..20833ad2025 100644 > --- a/libgfortran/runtime/ISO_Fortran_binding.c > +++ b/libgfortran/runtime/ISO_Fortran_binding.c > @@ -391,7 +391,12 @@ int CFI_establish (CFI_cdesc_t *dv, void > *base_addr, CFI_attribute_t attribute, > if (i == 0) > dv->dim[i].sm = dv->elem_len; > else > - dv->dim[i].sm = (CFI_index_t)(dv->elem_len * extents[i - 1]); > + { > + CFI_index_t extents_product = 1; > + for (int j = 0; j < i; j++) > + extents_product *= extents[j]; > + dv->dim[i].sm = (CFI_index_t)(dv->elem_len * extents_product); > + } > } > } --000000000000a0a19005b9e6e915 Content-Type: application/x-patch; name="hsnyder_iso_fortran_binding2.patch" Content-Disposition: attachment; filename="hsnyder_iso_fortran_binding2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkftuclt0 Y29tbWl0IDQ1MWJkNDBhY2EwMDZlYmRiYTUyNTUzZGUyMzkyZmNiNWIxZmY0MmYKQXV0aG9yOiBI YXJyaXMgTS4gU255ZGVyIDxoYXJyaXMuc255ZGVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSmFu IDI2IDIzOjI5OjI0IDIwMjEgLTA1MDAKCiAgICBQYXJ0aWFsIGZpeCBmb3IgUFIgZm9ydHJhbi85 MzUyNAoKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvSVNPX0ZvcnRyYW5f YmluZGluZ18xOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9JU09fRm9ydHJhbl9iaW5k aW5nXzE4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkMWM0ZWNi ZDcyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9JU09fRm9y dHJhbl9iaW5kaW5nXzE4LmMKQEAgLTAsMCArMSwyOSBAQAorI2luY2x1ZGUgPElTT19Gb3J0cmFu X2JpbmRpbmcuaD4KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgor CisKKworZXh0ZXJuIGludCBkb19sb29wKENGSV9jZGVzY190KiBhcnJheSk7CisKK2ludCBtYWlu KGludCBhcmdjLCBjaGFyICoqIGFyZ3YpCit7CisJaW50IG54ID0gOTsKKwlpbnQgbnkgPSAxMDsK KwlpbnQgbnogPSAyOworCisJaW50IGFycltueCpueSpuel07CisJbWVtc2V0KGFyciwwLHNpemVv ZihpbnQpKm54Km55Km56KTsKKwlDRklfaW5kZXhfdCBzaGFwZVszXTsKKwlzaGFwZVswXSA9IG56 OworCXNoYXBlWzFdID0gbnk7CisJc2hhcGVbMl0gPSBueDsKKworCUNGSV9DREVTQ19UKDMpIGZh cnI7CisJaW50IHJjID0gQ0ZJX2VzdGFibGlzaCgoQ0ZJX2NkZXNjX3QqKSZmYXJyLCBhcnIsIENG SV9hdHRyaWJ1dGVfb3RoZXIsIENGSV90eXBlX2ludCwgMCwgKENGSV9yYW5rX3QpMywgKGNvbnN0 IENGSV9pbmRleF90ICopc2hhcGUpOworCWlmIChyYyAhPSBDRklfU1VDQ0VTUykgYWJvcnQoKTsK KwlpbnQgcmVzdWx0ID0gZG9fbG9vcCgoQ0ZJX2NkZXNjX3QqKSZmYXJyKTsKKwlpZiAocmVzdWx0 ICE9IG54Km55Km56KSBhYm9ydCgpOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9JU09fRm9ydHJhbl9iaW5kaW5nXzE4LmY5MCBiL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvSVNPX0ZvcnRyYW5fYmluZGluZ18xOC5mOTAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc2YmU1MWQyMmZiCi0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9JU09fRm9ydHJhbl9iaW5kaW5nXzE4LmY5MApA QCAtMCwwICsxLDI4IEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1hZGRpdGlvbmFsLXNvdXJj ZXMgSVNPX0ZvcnRyYW5fYmluZGluZ18xOC5jIH0KKworbW9kdWxlIGZvcnRyYW5fYmluZGluZ190 ZXN0XzE4CisgICAgdXNlIGlzb19jX2JpbmRpbmcKKyAgICBpbXBsaWNpdCBub25lCitjb250YWlu cworCisgICAgc3Vicm91dGluZSB0ZXN0KGFycmF5KQorICAgICAgICBpbnRlZ2VyKGNfaW50KSA6 OiBhcnJheSg6KQorICAgICAgICBhcnJheSA9IDEKKyAgICBlbmQgc3Vicm91dGluZQorCisgICAg ZnVuY3Rpb24gZG9fbG9vcChhcnJheSkgcmVzdWx0KHRoZV9zdW0pIGJpbmQoYykKKyAgICAgICAg aW50ZWdlcihjX2ludCksIGludGVudChpbiBvdXQpIDo6IGFycmF5KDosOiw6KQorICAgICAgICBp bnRlZ2VyKGNfaW50KSA6OiB0aGVfc3VtLCBpLCBqCisKKyAgICAgICAgdGhlX3N1bSA9IDAgIAor ICAgICAgICBhcnJheSA9IDAKKyAgICAgICAgZG8gaT0xLHNpemUoYXJyYXksMykKKyAgICAgICAg ICAgIGRvIGo9MSxzaXplKGFycmF5LDIpCisgICAgICAgICAgICAgICAgY2FsbCB0ZXN0KGFycmF5 KDosaixpKSkKKyAgICAgICAgICAgIGVuZCBkbworICAgICAgICBlbmQgZG8KKyAgICAgICAgdGhl X3N1bSA9IHN1bShhcnJheSkKKyAgICBlbmQgZnVuY3Rpb24KKworZW5kIG1vZHVsZQpkaWZmIC0t Z2l0IGEvbGliZ2ZvcnRyYW4vcnVudGltZS9JU09fRm9ydHJhbl9iaW5kaW5nLmMgYi9saWJnZm9y dHJhbi9ydW50aW1lL0lTT19Gb3J0cmFuX2JpbmRpbmcuYwppbmRleCAzNzQ2ZWMxYzY4MS4uMjA4 MzNhZDIwMjUgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL3J1bnRpbWUvSVNPX0ZvcnRyYW5fYmlu ZGluZy5jCisrKyBiL2xpYmdmb3J0cmFuL3J1bnRpbWUvSVNPX0ZvcnRyYW5fYmluZGluZy5jCkBA IC0zOTEsNyArMzkxLDEyIEBAIGludCBDRklfZXN0YWJsaXNoIChDRklfY2Rlc2NfdCAqZHYsIHZv aWQgKmJhc2VfYWRkciwgQ0ZJX2F0dHJpYnV0ZV90IGF0dHJpYnV0ZSwKIAkgIGlmIChpID09IDAp CiAJICAgIGR2LT5kaW1baV0uc20gPSBkdi0+ZWxlbV9sZW47CiAJICBlbHNlCi0JICAgIGR2LT5k aW1baV0uc20gPSAoQ0ZJX2luZGV4X3QpKGR2LT5lbGVtX2xlbiAqIGV4dGVudHNbaSAtIDFdKTsK KwkgICAgeworCSAgICAgIENGSV9pbmRleF90IGV4dGVudHNfcHJvZHVjdCA9IDE7CisJICAgICAg Zm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspCisJCWV4dGVudHNfcHJvZHVjdCAqPSBleHRlbnRz W2pdOworCSAgICAgIGR2LT5kaW1baV0uc20gPSAoQ0ZJX2luZGV4X3QpKGR2LT5lbGVtX2xlbiAq IGV4dGVudHNfcHJvZHVjdCk7CisJICAgIH0KIAl9CiAgICAgfQogCg== --000000000000a0a19005b9e6e915--