aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/c-common.c2
-rw-r--r--gcc/c-opts.c1
-rw-r--r--gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-1.C9
-rw-r--r--gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-2.C7
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();