public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: David Malcolm <dmalcolm@redhat.com>
To: Andrew MacLeod <amacleod@redhat.com>, Aldy Hernandez <aldyh@redhat.com>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>
Subject: Re: PING Re: [PATCH 07/10] value-relation.h: add 'final' and 'override' to relation_oracle vfunc impls
Date: Wed, 15 Jun 2022 17:58:29 -0400	[thread overview]
Message-ID: <031856c8aaa601c4cd885a8bb9c7f00081eb22e1.camel@redhat.com> (raw)
In-Reply-To: <63d8b4a2-77f5-a7f7-7b93-87f29185b91c@redhat.com>

On Wed, 2022-06-15 at 09:33 -0400, Andrew MacLeod wrote:
> On 6/13/22 21:24, David Malcolm wrote:
> > On Mon, 2022-06-13 at 20:45 -0400, Aldy Hernandez wrote:
> > > Final implies we can't further derive from the derived class,
> > > right?
> > "final" on a vfunc implies that nothing overrides that vfunc, but you
> > could still have further derived classes.
> > 
> > You can think of it as "nothing further overrides this vfunc", as
> > both
> > a hint to the human reader, and an optimization hint to the compiler.
> > 
> > You can always just remove the "final" if you want to override it in
> > the future (unless the override is happening in a plugin, I suppose).
> > 
> > > If so
> > > we may want just override.
> > "override" is indeed probably more useful, in that it documents to
> > compilers and human readers that you intend this to override a vfunc.
> > 
> > FWIW I wrote the patch by using both "final" and "override", and then
> > dropping the "final" everywhere I needed to to get it to compile.
> > 
> > Dave
> > 
> > 
> > > Andrew, what are your thoughts?
> > > 
> > > Thanks for doing this.
> 
> OK by me.

Thanks; I've pushed this to trunk as r13-1118-gb06b84dbca5a11, after
retesting (bootstrapped & regrtested again on x86_64-pc-linux-gnu).

FWIW, as noted in 
  https://gcc.gnu.org/pipermail/gcc-patches/2022-May/595437.html
I tried hacking in -Werror=suggest-override to the Makefile, and there
were a bunch of places that it suggested could use "override" in
gcc/range.op.cc, but I decided not to touch that, because it seems to
be under heavy development by you (and also, frankly, out of laziness
on my part).  So maybe you might want to look at adding those at some
point, to avoid snafus where you meant to override something, but got
the signature slightly wrong, etc.

Dave


  reply	other threads:[~2022-06-15 21:58 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-23 19:28 [PATCH 00/10] Add 'final' and 'override' where missing David Malcolm
2022-05-23 19:28 ` [PATCH 01/10] Add 'final' and 'override' to opt_pass vfunc impls David Malcolm
2022-06-13 18:22   ` PING: " David Malcolm
2022-06-24 18:08     ` PING^2: " David Malcolm
2022-06-24 18:45       ` Jeff Law
2022-06-27 21:16         ` David Malcolm
2022-05-23 19:28 ` [PATCH 02/10] Add 'final' and 'override' on dom_walker " David Malcolm
2022-06-13 18:23   ` PING " David Malcolm
2022-06-24 18:10     ` PING^2 " David Malcolm
2022-05-23 19:28 ` [PATCH 03/10] expr.cc: use final/override on op_by_pieces_d vfuncs David Malcolm
2022-06-13 18:25   ` PING: " David Malcolm
2022-06-24 18:12     ` PING^2 : " David Malcolm
2022-05-23 19:28 ` [PATCH 04/10] tree-switch-conversion.h: use final/override for cluster vfunc impls David Malcolm
2022-06-13 18:26   ` PING " David Malcolm
2022-06-24 18:14     ` PING^2 : " David Malcolm
2022-05-23 19:28 ` [PATCH 05/10] d: add 'final' and 'override' to gcc/d/*.cc 'visit' impls David Malcolm
2022-05-24 12:56   ` Iain Buclaw
2022-05-24 13:15     ` David Malcolm
2022-05-24 15:11       ` Iain Buclaw
2022-05-23 19:28 ` [PATCH 06/10] ipa: add 'final' and 'override' to call_summary_base vfunc impls David Malcolm
2022-05-24  7:36   ` Martin Liška
2022-05-23 19:28 ` [PATCH 07/10] value-relation.h: add 'final' and 'override' to relation_oracle " David Malcolm
2022-06-13 18:28   ` PING " David Malcolm
2022-06-14  0:45     ` Aldy Hernandez
2022-06-14  1:24       ` David Malcolm
2022-06-15 13:33         ` Andrew MacLeod
2022-06-15 21:58           ` David Malcolm [this message]
2022-05-23 19:28 ` [PATCH 08/10] i386: add 'final' and 'override' to scalar_chain " David Malcolm
2022-06-13 18:30   ` PING: " David Malcolm
2022-06-24 18:19     ` PING^2 : " David Malcolm
2022-06-24 20:58       ` Uros Bizjak
2022-06-27 21:25         ` David Malcolm
2022-08-16  8:55       ` [PATCH][pushed] i386: add 'final' and 'override' to scalar_chain Martin Liška
2022-05-23 19:28 ` [PATCH 09/10] tree-vect-slp-patterns.cc: add 'final' and 'override' to vect_pattern::build impls David Malcolm
2022-05-24  6:44   ` Richard Biener
2022-05-23 19:28 ` [PATCH 10/10] Add 'final' and 'override' in various places David Malcolm
2022-06-13 18:30   ` PING " David Malcolm
2022-06-24 18:20     ` PING^2: " David Malcolm
2022-05-25  3:29 ` [PATCH 00/10] Add 'final' and 'override' where missing Eric Gallager

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=031856c8aaa601c4cd885a8bb9c7f00081eb22e1.camel@redhat.com \
    --to=dmalcolm@redhat.com \
    --cc=aldyh@redhat.com \
    --cc=amacleod@redhat.com \
    --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).