doc: -Wdelete-non-virtual-dtor supersedes -Wnon-virtual-dtor

Message ID 20221123101038.2192550-1-jwakely@redhat.com
State New
Headers
Series doc: -Wdelete-non-virtual-dtor supersedes -Wnon-virtual-dtor |

Commit Message

Jonathan Wakely Nov. 23, 2022, 10:10 a.m. UTC
  The existence of this option makes users think they need it (even though
it's in neither -Wall nor -Wextra). Document that there's a better
option (since 2011).

OK for trunk?

-- >8 --

The newer -Wdelete-non-virtual-dtor has no false positives and fewer
bugs. There is very little reason to use -Wnon-virtual-dtor instead.

gcc/ChangeLog:

	* doc/invoke.texi (C++ Dialect Options): Recommend using
	-Wdelete-non-virtual-dtor instead of -Wnon-virtual-dtor.
---
 gcc/doc/invoke.texi | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Jason Merrill Nov. 23, 2022, 3:33 p.m. UTC | #1
On 11/23/22 05:10, Jonathan Wakely wrote:
> The existence of this option makes users think they need it (even though
> it's in neither -Wall nor -Wextra). Document that there's a better
> option (since 2011).
> 
> OK for trunk?

OK.

> -- >8 --
> 
> The newer -Wdelete-non-virtual-dtor has no false positives and fewer
> bugs. There is very little reason to use -Wnon-virtual-dtor instead.
> 
> gcc/ChangeLog:
> 
> 	* doc/invoke.texi (C++ Dialect Options): Recommend using
> 	-Wdelete-non-virtual-dtor instead of -Wnon-virtual-dtor.
> ---
>   gcc/doc/invoke.texi | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 330da6eb5d4..4899bd1ea4c 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -3986,6 +3986,9 @@ destructor itself or in an accessible polymorphic base class, in which
>   case it is possible but unsafe to delete an instance of a derived
>   class through a pointer to the class itself or base class.  This
>   warning is automatically enabled if @option{-Weffc++} is specified.
> +The @option{-Wdelete-non-virtual-dtor} option (enabled by @option{-Wall})
> +should be preferred because it warns about the unsafe cases without false
> +positives.
>   
>   @item -Wregister @r{(C++ and Objective-C++ only)}
>   @opindex Wregister
  

Patch

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 330da6eb5d4..4899bd1ea4c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3986,6 +3986,9 @@  destructor itself or in an accessible polymorphic base class, in which
 case it is possible but unsafe to delete an instance of a derived
 class through a pointer to the class itself or base class.  This
 warning is automatically enabled if @option{-Weffc++} is specified.
+The @option{-Wdelete-non-virtual-dtor} option (enabled by @option{-Wall})
+should be preferred because it warns about the unsafe cases without false
+positives.
 
 @item -Wregister @r{(C++ and Objective-C++ only)}
 @opindex Wregister