aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-10-15 18:13:25 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2005-10-15 18:13:25 +0000
commit550d1bf420954b9e7dbf2695b6fd42b329d91604 (patch)
tree911c19a09bf32bbd85e9a71c0ab49c394c165f57 /gcc/cp/class.c
parentb27cedc6118a669f16a441f2ac287b72e7f8ccac (diff)
downloadgcc-550d1bf420954b9e7dbf2695b6fd42b329d91604.zip
gcc-550d1bf420954b9e7dbf2695b6fd42b329d91604.tar.gz
gcc-550d1bf420954b9e7dbf2695b6fd42b329d91604.tar.bz2
re PR c++/21347 (spurious warning with -Wctor-dtor-privacy)
PR c++/21347 * class.c (maybe_warn_about_overly_private_class): Lazy constructors are public. PR c++/21347 * g++.dg/warn/Wctor-dtor.C: New test. From-SVN: r105441
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r--gcc/cp/class.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index dc52975..b8254fe 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -1537,7 +1537,10 @@ maybe_warn_about_overly_private_class (tree t)
return;
}
- if (TYPE_HAS_CONSTRUCTOR (t))
+ if (TYPE_HAS_CONSTRUCTOR (t)
+ /* Implicitly generated constructors are always public. */
+ && (!CLASSTYPE_LAZY_DEFAULT_CTOR (t)
+ || !CLASSTYPE_LAZY_COPY_CTOR (t)))
{
int nonprivate_ctor = 0;