From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com [IPv6:2607:f8b0:4864:20::332]) by sourceware.org (Postfix) with ESMTPS id 66248385840F for ; Fri, 24 Feb 2023 05:17:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 66248385840F 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-ot1-x332.google.com with SMTP id e18-20020a0568301e5200b00690e6abbf3fso3494162otj.13 for ; Thu, 23 Feb 2023 21:17:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DYs7ECRoKc7TTbDDMmp6GIxNg0GjSZXpjyJYTjwmU9E=; b=KDzvyxK3wH2Cp+BgnOPboUWjRTqW+y57UY+wMsUh/1i4sMaFGFwt2+A1LTWsLlhJ+V 8oiJ9hwW9YpIa14OSatLpyQUqRh5TZngMvXtI8wdq9y+k0KRHtqQ+ZxwI/O6WLUhm5Nf 08f9RFF5zY2WuBMrHEMSQkuN8d53FlQFqz03y2MQE87+00rEs5eiQ1zT6RFm6En2gx3g NBDgtDy1xeVVo/8WItUCwRc9PlRL/dOex9AkOe0fo3QB54deky00NQfLToGsjeSaIrrW RCUrCgDxsokRLqrW6kqm1iPmEIw645adZtS/70DgbWNF7DK+HYPPiSz167OA9DAZo2gM XTUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=DYs7ECRoKc7TTbDDMmp6GIxNg0GjSZXpjyJYTjwmU9E=; b=ZaW4iqy9WMAYFv01UXzK71ha6cDMZAZKhJYzLFZ0I4RrxHJ7Mk4yw4qofMhXPeaJpg Grq+Gu7PSIgkzQkSCcwb9+YuqSg7wUtlv/p6hEcnqCYhN9VM34Y7lyV+uTFzM24p+2ZQ G9grDrWdswTUhCElEz8l6GnEqsFp6hy25/fOSWQkUT93cV/eJbhux2KAJdPRysGOU/s3 dcjRfB6Gh7dVnVhoQoN/7G030uRj40S3wwF1uetVetHpLzTIIS31kuc/R2nOo7CHYGTR c5z0m41ZL4+eK9kCSTVpk2qb2UJamaE2pac67BDL3PnpZoHZ3iJ/fU6unZsyIfjfsObn LAzQ== X-Gm-Message-State: AO0yUKUhSelgK5aIPruN3xfA3WD7k8UT5/s92//A2Vyesk6UOL6NwB0v zQ4Hxf5tPiomMVopkp1l8h0Ni2X1DjFPGq7tP0g= X-Google-Smtp-Source: AK7set8KU6qRDGTJYsFl/Cv3PFD9IfvV0vDPJzof4a6dTNYB3lPr9k585wQQQSgdVdXoDh8nWibP9q+xCmWdW/NwRLg= X-Received: by 2002:a9d:468d:0:b0:68d:8bb1:bfbb with SMTP id z13-20020a9d468d000000b0068d8bb1bfbbmr1266295ote.2.1677215833602; Thu, 23 Feb 2023 21:17:13 -0800 (PST) MIME-Version: 1.0 References: <0115618b-059b-fd11-a813-33374f16af78@gmx.de> <87h6vo8u8u.fsf@euler.schwinge.homeip.net> <1d59f51b-fffc-3a3a-4c92-edfe5c525783@gmx.de> In-Reply-To: From: Rimvydas Jasinskas Date: Fri, 24 Feb 2023 07:16:51 +0200 Message-ID: Subject: Re: Support for WEAK attribute, part 2 To: Harald Anlauf Cc: Rimvydas Jasinskas via Fortran , gcc-patches@gnu.org Content-Type: multipart/mixed; boundary="000000000000f957cb05f56b3d80" X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_NUMSUBJECT,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: --000000000000f957cb05f56b3d80 Content-Type: text/plain; charset="UTF-8" On Thu, Feb 23, 2023 at 10:53 PM Harald Anlauf wrote: > the patch is mostly fine, but there is a minor style issue: > > + if (sym->attr.ext_attr & (1 << EXT_ATTR_WEAK)) > + gfc_error ("Symbol %qs at %L has the WEAK attribute but is a %s", > + sym->name, &sym->declared_at, sym->attr.dummy > + ? "dummy argument" : "local variable"); > + > > It is my understanding that this is not translation-friendly. > Please use separate error texts for either case instead. Interesting, I was under the impression this was fixed with OO-inlines around the *.c rename. In any case, adjusted in v2 to use: + if (sym->attr.ext_attr & (1 << EXT_ATTR_WEAK)) + { + if (sym->attr.dummy) + gfc_error ("Symbol %qs at %L has the WEAK attribute but is a " + "dummy argument", sym->name, &sym->declared_at); + else + gfc_error ("Symbol %qs at %L has the WEAK attribute but is a " + "local variable", sym->name, &sym->declared_at); + } > Do we need to really have that many separate files for all > the tests? Note that each separate file contributes to the > time developers wait on regtesting to complete. Some of the > files essentially test only minor variations, like weak-2.f90 > and weak-3.f90. These testcases are dg-compile and do not go through the "-O0 -O1 -O2 -O3 -Os" options like dg-run. Combining the testcases does not reduce gfortran.sum a lot: -PASS: gfortran.dg/weak-2.f90 -O scan-assembler weak[^ \t]*[ \t]_?impl -PASS: gfortran.dg/weak-2.f90 -O (test for excess errors) -PASS: gfortran.dg/weak-3.f90 -O scan-assembler weak[^ \t]*[ \t]_?bar__ -PASS: gfortran.dg/weak-3.f90 -O (test for excess errors) -PASS: gfortran.dg/weak-4.f90 -O scan-assembler weak[^ \t]*[ \t]_?__foo_MOD_abc -PASS: gfortran.dg/weak-4.f90 -O (test for excess errors) -PASS: gfortran.dg/weak-5.f90 -O (test for excess errors) -PASS: gfortran.dg/weak-6.f90 -O (test for errors, line 3) -PASS: gfortran.dg/weak-6.f90 -O (test for excess errors) -PASS: gfortran.dg/weak-7.f90 -O (test for errors, line 10) -PASS: gfortran.dg/weak-7.f90 -O (test for errors, line 6) -PASS: gfortran.dg/weak-7.f90 -O (test for excess errors) -PASS: gfortran.dg/weak-8.f90 -O (test for errors, line 3) -PASS: gfortran.dg/weak-8.f90 -O (test for errors, line 7) -PASS: gfortran.dg/weak-8.f90 -O (test for excess errors) +PASS: gfortran.dg/weak-2.f90 -O scan-assembler weak[^ \t]*[ \t]_?__foo_MOD_abc +PASS: gfortran.dg/weak-2.f90 -O scan-assembler weak[^ \t]*[ \t]_?bar__ +PASS: gfortran.dg/weak-2.f90 -O scan-assembler weak[^ \t]*[ \t]_?impl1 +PASS: gfortran.dg/weak-2.f90 -O (test for excess errors) +PASS: gfortran.dg/weak-3.f90 -O (test for errors, line 14) +PASS: gfortran.dg/weak-3.f90 -O (test for errors, line 18) +PASS: gfortran.dg/weak-3.f90 -O (test for errors, line 24) +PASS: gfortran.dg/weak-3.f90 -O (test for errors, line 28) +PASS: gfortran.dg/weak-3.f90 -O (test for errors, line 5) +PASS: gfortran.dg/weak-3.f90 -O (test for excess errors) Only benefit is a bit less gfortran/f951 binaries invocations at expense of potentially introducing issues in what was intended to be tested. There exists a partial(intentionally or not) sequential file-scope namespace (like in C) how gfortran parses different units in the same file. Swapping unit order in the file can affect not only code generation but diagnostic counts reported. I tend to avoid having more than one unit per source to avoid dealing with "borrowing". However with part3 now implemented after debugging, I guess, samples could be combined to "accepts" + "rejects" two testcases, Done in v2. > What is the purpose of testcase weak-5.f90? It's valid > Fortran, the common block /c/ shows in the assembler and > does not interfere with the module variable c. Removed. Issue is not directly related to only the WEAK attributes. Will be addressed in the future. > Finally, please do not forget to CC patches to gcc-patches@ > so that others can see them. Out of curiosity, what is the purpose of CC patches to gcc-patches too? Attachments are even available in web mailing list too, like in: https://gcc.gnu.org/pipermail/fortran/2023-February/058953.html Regards, Rimvydas --000000000000f957cb05f56b3d80 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fortran-Add-support-for-WEAK-attribute-for-variables.patch" Content-Disposition: attachment; filename="0001-Fortran-Add-support-for-WEAK-attribute-for-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lei24t3e0 RnJvbSA1YjgzMjI2YzcxNGIxNzc4MDMzNGI1YmFkOWIxN2MyMjY2YWY4MjMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaW12eWRhcyBKYXNpbnNrYXMgPHJpbXZ5ZGFzLmphc0BnbWFp bC5jb20+CkRhdGU6IEZyaSwgMjQgRmViIDIwMjMgMDQ6NDE6MDAgKzAwMDAKU3ViamVjdDogRm9y dHJhbjogQWRkIHN1cHBvcnQgZm9yIFdFQUsgYXR0cmlidXRlIGZvciB2YXJpYWJsZXMKCiBBZGQg dGhlIHJlc3Qgb2YgdGhlIHdlYWstKi5mOTAgdGVzdGNhc2VzLgoKZ2NjL2ZvcnRyYW4vQ2hhbmdl TG9nOgoKCSogdHJhbnMtZGVjbC5jYyAoZ2ZjX2ZpbmlzaF92YXJfZGVjbCk6IEFwcGx5IGF0dHJp YnV0ZS4KCShnZW5lcmF0ZV9sb2NhbF9kZWNsKTogQWRkIGRpYWdub3N0aWMgZm9yIGR1bW15IGFu ZCBsb2NhbCB2YXJpYWJsZXMuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGdmb3J0cmFu LmRnL3dlYWstMi5mOTA6IE5ldyB0ZXN0LgoJKiBnZm9ydHJhbi5kZy93ZWFrLTMuZjkwOiBOZXcg dGVzdC4KClNpZ25lZC1vZmYtYnk6IFJpbXZ5ZGFzIEphc2luc2thcyA8cmltdnlkYXMuamFzQGdt YWlsLmNvbT4KLS0tCiBnY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjICAgICAgICAgICAgfCAxNCAr KysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dlYWstMi5mOTAgfCAyNiAr KysrKysrKysrKysrKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvd2Vhay0z LmY5MCB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwg NzAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvd2Vhay0yLmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvd2Vhay0zLmY5MAoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuY2Mg Yi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjCmluZGV4IGZmNjQ1ODhiOWE4Li40NzQ5MjA5NjZl YyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYworKysgYi9nY2MvZm9ydHJh bi90cmFucy1kZWNsLmNjCkBAIC04MTQsNiArODE0LDEwIEBAIGdmY19maW5pc2hfdmFyX2RlY2wg KHRyZWUgZGVjbCwgZ2ZjX3N5bWJvbCAqIHN5bSkKICAgICAgICYmIChUUkVFX1NUQVRJQyAoZGVj bCkgfHwgREVDTF9FWFRFUk5BTCAoZGVjbCkpKQogICAgIHNldF9kZWNsX3Rsc19tb2RlbCAoZGVj bCwgZGVjbF9kZWZhdWx0X3Rsc19tb2RlbCAoZGVjbCkpOwogCisgIC8qIE1hcmsgd2VhayB2YXJp YWJsZXMuICAqLworICBpZiAoc3ltLT5hdHRyLmV4dF9hdHRyICYgKDEgPDwgRVhUX0FUVFJfV0VB SykpCisgICAgZGVjbGFyZV93ZWFrIChkZWNsKTsKKwogICBnZmNfZmluaXNoX2RlY2xfYXR0cnMg KGRlY2wsICZzeW0tPmF0dHIpOwogfQogCkBAIC01ODg1LDYgKzU4ODksMTYgQEAgZ2VuZXJhdGVf bG9jYWxfZGVjbCAoZ2ZjX3N5bWJvbCAqIHN5bSkKICAgICAgIGlmICghc3ltLT5hdHRyLmR1bW15 ICYmICFzeW0tPm5zLT5wcm9jX25hbWUtPmF0dHIuZW50cnlfbWFzdGVyKQogCWdlbmVyYXRlX2Rl cGVuZGVuY3lfZGVjbGFyYXRpb25zIChzeW0pOwogCisgICAgICBpZiAoc3ltLT5hdHRyLmV4dF9h dHRyICYgKDEgPDwgRVhUX0FUVFJfV0VBSykpCisJeworCSAgaWYgKHN5bS0+YXR0ci5kdW1teSkK KwkgICAgZ2ZjX2Vycm9yICgiU3ltYm9sICVxcyBhdCAlTCBoYXMgdGhlIFdFQUsgYXR0cmlidXRl IGJ1dCBpcyBhICIKKwkJICAgICAgICJkdW1teSBhcmd1bWVudCIsIHN5bS0+bmFtZSwgJnN5bS0+ ZGVjbGFyZWRfYXQpOworCSAgZWxzZQorCSAgICBnZmNfZXJyb3IgKCJTeW1ib2wgJXFzIGF0ICVM IGhhcyB0aGUgV0VBSyBhdHRyaWJ1dGUgYnV0IGlzIGEgIgorCQkgICAgICAgImxvY2FsIHZhcmlh YmxlIiwgc3ltLT5uYW1lLCAmc3ltLT5kZWNsYXJlZF9hdCk7CisJfQorCiAgICAgICBpZiAoc3lt LT5hdHRyLnJlZmVyZW5jZWQpCiAJZ2ZjX2dldF9zeW1ib2xfZGVjbCAoc3ltKTsKIApkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93ZWFrLTIuZjkwIGIvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy93ZWFrLTIuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4zZTBlODc3ZTkwMwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvd2Vhay0yLmY5MApAQCAtMCwwICsxLDI2IEBACishIHsgZGctZG8gY29tcGlsZSB9 CishIHsgZGctcmVxdWlyZS13ZWFrICIiIH0KKyEgeyBkZy1za2lwLWlmICIiIHsgeDg2XzY0LSot bWluZ3cqIH0gfQorISB7IGRnLXNraXAtaWYgIiIgeyBudnB0eC0qLSogfSB9CisKKyEgMS4KKyEg eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ3ZWFrXFteIFx0XF0qXFsgXHRcXV8/X19mb29f TU9EX2FiYyIgfSB9Cittb2R1bGUgZm9vCitpbXBsaWNpdCBub25lCishR0NDJCBBVFRSSUJVVEVT IHdlYWsgOjogYWJjCityZWFsIDo6IGFiYyg3KQorZW5kIG1vZHVsZQorCishIDIuCishIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAid2Vha1xbXiBcdFxdKlxbIFx0XF1fP2ltcGwxIiB9IH0K K2ludGVnZXIgZnVuY3Rpb24gaW1wbDEoKQoraW1wbGljaXQgbm9uZQorIUdDQyQgQVRUUklCVVRF UyB3ZWFrIDo6IGltcGwxCitlbmQgZnVuY3Rpb24KKworISAzLgorISB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgIndlYWtcW14gXHRcXSpcWyBcdFxdXz9iYXJfXyIgfSB9CitpbnRlZ2VyIGZ1 bmN0aW9uIGltcGwyKCkgYmluZChjLG5hbWU9J2Jhcl9fJykKK2ltcGxpY2l0IG5vbmUKKyFHQ0Mk IEFUVFJJQlVURVMgd2VhayA6OiBpbXBsMgorZW5kIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dlYWstMy5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL3dlYWstMy5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNm YTg0NTkyMWZmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93 ZWFrLTMuZjkwCkBAIC0wLDAgKzEsMzAgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1y ZXF1aXJlLXdlYWsgIiIgfQorCishIDEuCitwcm9ncmFtIGZvbzEgICEgeyBkZy1lcnJvciAid2Vh ayBkZWNsYXJhdGlvbiBvZiAnZm9vMScgbXVzdCBiZSBwdWJsaWMiICIiIH0KK2ltcGxpY2l0IG5v bmUKKyFHQ0MkIEFUVFJJQlVURVMgd2VhayA6OiBmb28xCitlbmQgcHJvZ3JhbQorCishIDIuCitz dWJyb3V0aW5lIGZvbzIKK2ltcGxpY2l0IG5vbmUKK2NvbnRhaW5zCisgZnVuY3Rpb24gZGFyKCkg ISB7IGRnLWVycm9yICJ3ZWFrIGRlY2xhcmF0aW9uIG9mICdkYXInIG11c3QgYmUgcHVibGljIiAi IiB9CisgaW50ZWdlciA6OiBkYXIKKyFHQ0MkIEFUVFJJQlVURVMgd2VhayA6OiBkYXIKKyBlbmQg ZnVuY3Rpb24KKyBzdWJyb3V0aW5lIGJhciAhIHsgZGctZXJyb3IgIndlYWsgZGVjbGFyYXRpb24g b2YgJ2JhcicgbXVzdCBiZSBwdWJsaWMiICIiIH0KKyFHQ0MkIEFUVFJJQlVURVMgd2VhayA6OiBi YXIKKyBlbmQgc3Vicm91dGluZQorZW5kIHN1YnJvdXRpbmUKKworISAzLgorc3Vicm91dGluZSBm b28zKG4pICEgeyBkZy1lcnJvciAiaGFzIHRoZSBXRUFLIGF0dHJpYnV0ZSBidXQgaXMgYSBkdW1t eSBhcmd1bWVudCIgIiIgfQoraW1wbGljaXQgbm9uZQoraW50ZWdlciA6OiBuCishR0NDJCBBVFRS SUJVVEVTIHdlYWsgOjogbgorcmVhbCA6OiBhYmMgICAgICAgISB7IGRnLWVycm9yICJoYXMgdGhl IFdFQUsgYXR0cmlidXRlIGJ1dCBpcyBhIGxvY2FsIHZhcmlhYmxlIiAiIiB9CishR0NDJCBBVFRS SUJVVEVTIHdlYWsgOjogYWJjCitlbmQgc3Vicm91dGluZQotLSAKMi4zOS4yCgo= --000000000000f957cb05f56b3d80--