PR c++/88136 - -Wdeprecated-copy false positives
authorJason Merrill <jason@redhat.com>
Thu, 6 Dec 2018 21:17:08 +0000 (16:17 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 6 Dec 2018 21:17:08 +0000 (16:17 -0500)
commit5c8b3702e36a8792fa297f6b2b2cc865e08bb1b7
tree6b80e5d185cdf98f73f8ceefb770c17019adbbe1
parent6e00bd6eb238f106101e32ce5c76b4b3ab8e26cc
PR c++/88136 - -Wdeprecated-copy false positives

Deprecating the copy operations because the class has a user-provided
destructor turns out to have too many false positives; this patch adjusts
-Wdeprecated-copy to only deprecate if the other copy operation is
user-provided.  To get the earlier behavior, people can explicitly request
it with -Wdeprecated-copy-dtor.

gcc/c-family/
* c.opt (Wdeprecated-copy-dtor): New.
(Wdeprecated-copy): Move to -Wextra.
gcc/cp/
* class.c (classtype_has_depr_implicit_copy): Rename from
classtype_has_user_copy_or_dtor.
* method.c (lazily_declare_fn): Adjust.
* decl2.c (cp_warn_deprecated_use): Refer to -Wdeprecated-copy-dtor
if deprecation is due to a destructor.

From-SVN: r266867
gcc/c-family/ChangeLog
gcc/c-family/c.opt
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl2.c
gcc/cp/method.c
gcc/doc/invoke.texi
gcc/testsuite/g++.dg/cpp0x/depr-copy1.C