public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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



  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).