From: Richard Biener <rguenther@suse.de>
To: Mikael Morin <morin-mikael@orange.fr>
Cc: gcc-patches@gcc.gnu.org, gfortran <fortran@gcc.gnu.org>
Subject: Re: [PATCH] Avoid some -Wunreachable-code-ctrl
Date: Tue, 30 Nov 2021 14:25:41 +0100 (CET) [thread overview]
Message-ID: <83n991n3-7n59-8288-9nop-qqo08qqop359@fhfr.qr> (raw)
In-Reply-To: <e20711d2-b368-92c5-79fe-cfef01fd0fbb@orange.fr>
On Tue, 30 Nov 2021, Mikael Morin wrote:
> Le 29/11/2021 à 16:03, Richard Biener via Gcc-patches a écrit :
> > diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c
> > index f5ba7cecd54..16ee2afc9c0 100644
> > --- a/gcc/fortran/frontend-passes.c
> > +++ b/gcc/fortran/frontend-passes.c
> > @@ -5229,7 +5229,6 @@ gfc_expr_walker (gfc_expr **e, walk_expr_fn_t exprfn,
> > void *data)
> > case EXPR_OP:
> > WALK_SUBEXPR ((*e)->value.op.op1);
> > WALK_SUBEXPR_TAIL ((*e)->value.op.op2);
> > - break;
> > case EXPR_FUNCTION:
> > for (a = (*e)->value.function.actual; a; a = a->next)
> > WALK_SUBEXPR (a->expr);
>
> I’m uncomfortable with the above change.
> It makes it look like there is a fall through, but there is not.
> Maybe inline the macro to make the continue explicit, or use WALK_SUBEXPR
> instead of WALK_SUBEXPR_TAIL and hope the compiler will do the tail call
> optimization.
Ah, it follows the style in tree.c:walk_tree_1 where break was used
inconsistently after WALK_SUBTREE_TAIL which was then more obvious
to me to clean up. I didn't realize the fortran FE only had a
single WALK_SUBEXPR_TAIL.
I'm not sure inlining will make the situation more clear, for
sure using WALK_SUBEXPR would but it might loose the tailcall.
Would you accept an additional comment after WALK_SUBEXPR_TAIL like
case EXPR_OP:
WALK_SUBEXPR ((*e)->value.op.op1);
WALK_SUBEXPR_TAIL ((*e)->value.op.op2);
/* tail-recurse */
? Btw, a fallthru would be diagnosed by GCC unless we put
/* Fallthru */
here. Maybe renaming WALK_SUBEXPR_TAIL to WALK_SUBEXPR_WITH_CONTINUE
or WALK_SUBEXPR_BY_TAIL_RECURSING or WALK_SUBEXPR_TAILRECURSE would
be more obvious?
Thanks,
Richard.
next prev parent reply other threads:[~2021-11-30 13:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-29 15:03 Richard Biener
2021-11-29 15:53 ` Jeff Law
2021-11-30 13:00 ` Mikael Morin
2021-11-30 13:25 ` Richard Biener [this message]
2021-11-30 14:18 ` Mikael Morin
2021-11-30 14:27 ` Richard Biener
2021-11-30 22:16 ` Jason Merrill
2021-12-01 7:57 ` Richard Biener
2021-12-02 20:47 ` Jason Merrill
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=83n991n3-7n59-8288-9nop-qqo08qqop359@fhfr.qr \
--to=rguenther@suse.de \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=morin-mikael@orange.fr \
/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).