diff options
author | Gabriel Dos Reis <gdr@integrable-solutions.net> | 2003-05-11 12:47:42 +0000 |
---|---|---|
committer | Gabriel Dos Reis <gdr@gcc.gnu.org> | 2003-05-11 12:47:42 +0000 |
commit | f333504d46da2f112b66a3957a7c8d0fd0c422f7 (patch) | |
tree | a6924f208de2f2c4ca7c84c3605e16b1d484b223 /gcc | |
parent | 9f01ded6a4ccb23faa18ce19091eb5ea0408b8d9 (diff) | |
download | gcc-f333504d46da2f112b66a3957a7c8d0fd0c422f7.zip gcc-f333504d46da2f112b66a3957a7c8d0fd0c422f7.tar.gz gcc-f333504d46da2f112b66a3957a7c8d0fd0c422f7.tar.bz2 |
re PR c++/689 ([diagnostic] this warning is not helpful: `class xxxx' only defines a private destructor and has no friend)
PR C++/689
PR C++/9257
* c-opts.c (c_common_decode_option): Don't set
warn_ctor_dtor_privacy wen -Wall.
* c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
From-SVN: r66684
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/c-common.c | 2 | ||||
-rw-r--r-- | gcc/c-opts.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-1.C | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-2.C | 7 |
5 files changed, 25 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c70206..fcfd2f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2003-05-11 Gabriel Dos Reis <gdr@integrable-solutions.net> + + PR C++/689 + PR C++/9257 + * c-opts.c (c_common_decode_option): Don't set + warn_ctor_dtor_privacy wen -Wall. + * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default. + 2003-05-10 Alexandre Oliva <aoliva@redhat.com> * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's diff --git a/gcc/c-common.c b/gcc/c-common.c index aa34d53..c3fcf42 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -626,7 +626,7 @@ int warn_implicit = 1; /* Nonzero means warn when all ctors or dtors are private, and the class has no friends. */ -int warn_ctor_dtor_privacy = 1; +int warn_ctor_dtor_privacy = 0; /* Nonzero means warn in function declared in derived class has the same name as a virtual in the base class, but fails to match the diff --git a/gcc/c-opts.c b/gcc/c-opts.c index bbceabb..82cae2e 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -825,7 +825,6 @@ c_common_decode_option (argc, argv) else { /* C++-specific warnings. */ - warn_ctor_dtor_privacy = on; warn_nonvdtor = on; warn_reorder = on; warn_nontemplate_friend = on; diff --git a/gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-1.C b/gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-1.C new file mode 100644 index 0000000..3e84c09 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-1.C @@ -0,0 +1,9 @@ +// { dg-options "-Wctor-dtor-privacy" } + +struct C { // { dg-warning "" } + static bool result; +private: + static bool check(); +}; + +bool C::result = check(); diff --git a/gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-2.C b/gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-2.C new file mode 100644 index 0000000..16873ab --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-2.C @@ -0,0 +1,7 @@ +struct C { + static bool result; +private: + static bool check(); +}; + +bool C::result = check(); |