diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 986d4d2f4cd..a17914004ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2006-01-21 Gabriel Dos Reis + + PR c++/16190 + * c-opts.c (c_common_handle_option): Don't include + -Wnon-virtual-dtor in -Wall; enable if -Weffc++. + * doc/invoke.texi (C++ Dialect Options): Document that + -Wnon-virtual-dtor is no longer included in -Wall. + 2006-01-21 Joseph S. Myers * gcov.c (print_version), gcov-dump.c (print_version), diff --git a/gcc/c-opts.c b/gcc/c-opts.c index f508e4e0481..5bc5f5de9ea 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -409,7 +409,6 @@ c_common_handle_option (size_t scode, const char *arg, int value) else { /* C++-specific warnings. */ - warn_nonvdtor = value; warn_reorder = value; warn_nontemplate_friend = value; } @@ -539,6 +538,12 @@ c_common_handle_option (size_t scode, const char *arg, int value) warn_write_strings = value; break; + case OPT_Weffc__: + warn_ecpp = value; + if (value) + warn_nonvdtor = true; + break; + case OPT_ansi: if (!c_dialect_cxx ()) set_std_c89 (false, true); diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 1e5a2167077..0d0c521424a 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1736,8 +1736,8 @@ public static member functions. @item -Wnon-virtual-dtor @r{(C++ only)} @opindex Wnon-virtual-dtor Warn when a class appears to be polymorphic, thereby requiring a virtual -destructor, yet it declares a non-virtual one. -This warning is enabled by @option{-Wall}. +destructor, yet it declares a non-virtual one. This warning is also +enabled if -Weffc++ is specified. @item -Wreorder @r{(C++ only)} @opindex Wreorder