[PATCH] Add diagnostic to require that virtual methods be tagged with C++11 'override'

Marek Polacek polacek@redhat.com
Thu Sep 25 08:50:00 GMT 2014


Hi!

On Wed, Sep 24, 2014 at 02:08:01PM -0700, Josh Gao wrote:
> commit b4d15d3cf660708dca088361801ebd56e018f986
> Author: Josh Gao <jgao@mobileiron.com>
> Date:   Wed Sep 24 14:01:16 2014 -0700
> 
>     Add diagnostic to require virtual methods to be tagged override.
>     
>     gcc/Changelog
>         * doc/invoke.texi (-Wmissing-virtual-override): Add.
>     
>     gcc/c-family
>         * c.opt: Add -Wmissing-virtual-override.

A nit: this should probably be
	* c.opt (Wmissing-virtual-override): New option.
     
> diff --git a/gcc/ChangeLog b/gcc/ChangeLog
> index 666f1a6..9392e7b 100644
> --- a/gcc/ChangeLog
> +++ b/gcc/ChangeLog
> @@ -1,3 +1,6 @@
> +2014-09-24  Josh Gao  <jmg116@gmail.com>
> +    * doc/invoke.texi (-Wmissing-virtual-override): Add.
> +
>  2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
>  
>  	* ipa-utils.h (polymorphic_call_context): Add
> diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
> index 2278e77..56ec987 100644
> --- a/gcc/c-family/ChangeLog
> +++ b/gcc/c-family/ChangeLog
> @@ -1,3 +1,6 @@
> +2014-09-24  Josh Gao  <jmg116@gmail.com>
> +	* c.opt: Add -Wmissing-virtual-override.
> +
>  2014-09-24  Marek Polacek  <polacek@redhat.com>
>  
>  	PR c/61405

Please don't include ChangeLogs in the patch itself, it makes the
patch hard to apply.  Instead, just include the ChangeLog entry before
the patch, as you did above.

> --- a/gcc/cp/class.c
> +++ b/gcc/cp/class.c
> @@ -2773,6 +2773,9 @@ check_for_override (tree decl, tree ctype)
>      error ("%q+#D marked %<final%>, but is not virtual", decl);
>    if (DECL_OVERRIDE_P (decl) && !overrides_found)
>      error ("%q+#D marked %<override%>, but does not override", decl);
> +  if (!DECL_OVERRIDE_P (decl) && overrides_found && !DECL_DESTRUCTOR_P (decl))
> +    warning (OPT_Wmissing_virtual_override,
> +      "%q+#D overrides, but is not marked %<override%>", decl);

Shouldn't this new if be better 'else if'?

> --- a/gcc/testsuite/ChangeLog
> +++ b/gcc/testsuite/ChangeLog
> @@ -1,3 +1,6 @@
> +2014-09-24  Josh Gao  <jmg116@gmail.com>
> +	* g++.dg/cpp0x/override5.C: New test.

This test seems to be missing in the patch; forgot to git add?

Thanks,

	Marek



More information about the Gcc-patches mailing list