From: Harald Anlauf <anlauf@gmx.de>
To: gcc-patches@gcc.gnu.org
Cc: fortran@gcc.gnu.org
Subject: Re: [Patch] Fortran: Avoid var initialization in interfaces [PR54753]
Date: Wed, 29 Sep 2021 22:10:25 +0200 [thread overview]
Message-ID: <d3d85942-734c-0e77-0315-0138320187af@gmx.de> (raw)
In-Reply-To: <40ee9c33-3122-54aa-a43b-655bb280b7fc@codesourcery.com>
Hi Tobias,
Am 29.09.21 um 10:53 schrieb Tobias Burnus:
> Found when looking at F2018:C839 / PR54753.
>
> For INTENT(OUT) the dummy variable (might) also be default initialized
> or deallocated. However, with assumed rank, that causes issues, which
> C839 prevents. In the current GCC implementation, missing C839 constraint
> diagnostic, but also rejects-valid/ice-on-valid appears.
>
> There are three issues, this patch solves the first:
>
> * reject-valid issue due to adding the initializer also to a dummy
> argument which is in an INTERFACE block. Having initializers in
> INTERFACE blocks is pointless and causes for the attached testcase
> the bogus error:
> "Assumed-rank variable y at (1) may only be used as actual argument"
ACK.
> (Except for wasting resources and this error, they should be ignored
> in trans*.c and usually do not cause any further harm.)
>
>
> I think Sandra has a nearly ready patch to do the C839 constraint
> diagnostic, which needs the attached patch to do the checks.
>
> The third issue is that GCC currently gives either an ICE or the
> above error message when declaring a procedure with a valid
> assumed-rank intent(out) dummy. This has still to be solved as well.
> But first I wanted to unblock Sandra's C839 work with this patch :-)
>
>
> Regarding the patch, '!= IFSRC_IFBODY' has to be used; "== IFSRC_DECL"
> won't work as the the generatedy ENTRY master function has IFSRC_UNKNOWN.
I have to admit that the code touched is hard to understand for me.
The conditions involved are unfortunately already dense, long lists.
(There are PRs related to *missing* default initializations (e.g.
PR100440), which I looked at before in that area until I got lost...
Of course this needs to be addressed elsewhere.)
> OK for mainline?
No objections here; the patch seems to work. The commit message has
a non-ASCII character (hyphen). Not sure whether that was intended.
You may nevertheless want a second opinion.
Thanks for the patch!
Harald
> Tobias
>
> PS: Some patch reviews are that fast that it is impossible to send the OK;
> at least, I did not manage to do for Harald's last two - for the last one
> I was at least 4min too late. ;-)
>
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201,
> 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer:
> Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München;
> Registergericht München, HRB 106955
next prev parent reply other threads:[~2021-09-29 20:10 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-29 8:53 Tobias Burnus
2021-09-29 20:10 ` Harald Anlauf [this message]
2021-10-01 18:50 ` Harald Anlauf
2021-10-02 18:01 ` Sandra Loosemore
2021-10-02 18:29 ` Tobias Burnus
2021-10-02 19:19 ` Harald Anlauf
2021-10-02 19:56 ` Tobias Burnus
2021-10-02 20:28 ` Harald Anlauf
2021-10-02 22:40 ` Sandra Loosemore
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d3d85942-734c-0e77-0315-0138320187af@gmx.de \
--to=anlauf@gmx.de \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).