PR c++/90884 - stray note with -Wctor-dtor-privacy.

* class.c (maybe_warn_about_overly_private_class): Guard the call to
	inform.

	* g++.dg/warn/ctor-dtor-privacy-4.C: New.
	* g++.dg/warn/ctor-dtor-privacy-4.h: New.

From-SVN: r272291
This commit is contained in:
Marek Polacek 2019-06-14 14:49:57 +00:00 committed by Marek Polacek
parent b27c108234
commit 9f119e2926
5 changed files with 28 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2019-06-14 Marek Polacek <polacek@redhat.com>
PR c++/90884 - stray note with -Wctor-dtor-privacy.
* class.c (maybe_warn_about_overly_private_class): Guard the call to
inform.
2019-06-12 Jason Merrill <jason@redhat.com>
PR c++/85552 - wrong instantiation of dtor for DMI.

View File

@ -2150,10 +2150,10 @@ maybe_warn_about_overly_private_class (tree t)
if (!nonprivate_ctor)
{
warning (OPT_Wctor_dtor_privacy,
"%q#T only defines private constructors and has no friends",
t);
if (copy_or_move)
bool w = warning (OPT_Wctor_dtor_privacy,
"%q#T only defines private constructors and has "
"no friends", t);
if (w && copy_or_move)
inform (DECL_SOURCE_LOCATION (copy_or_move),
"%q#D is public, but requires an existing %q#T object",
copy_or_move, t);

View File

@ -1,3 +1,9 @@
2019-06-14 Marek Polacek <polacek@redhat.com>
PR c++/90884 - stray note with -Wctor-dtor-privacy.
* g++.dg/warn/ctor-dtor-privacy-4.C: New.
* g++.dg/warn/ctor-dtor-privacy-4.h: New.
2019-06-14 Richard Biener <rguenther@suse.de>
* gcc.dg/tree-ssa/ldist-26.c: Adjust.

View File

@ -0,0 +1,5 @@
// PR c++/90884
// { dg-options "-Wctor-dtor-privacy" }
// { dg-prune-output "In file included from" }
#include "ctor-dtor-privacy-4.h" // { dg-bogus "is public" }

View File

@ -0,0 +1,7 @@
#pragma GCC system_header
namespace std {
struct __nonesuch {
__nonesuch(__nonesuch const &);
};
} // namespace std