From: Jason Merrill Date: Thu, 28 Jun 2018 20:22:21 +0000 (-0400) Subject: PR c++/86342 - -Wdeprecated-copy and system headers. X-Git-Tag: basepoints/gcc-10~5636 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8be1451289da4dfd69673b768bdc0e901a0fcef;p=thirdparty%2Fgcc.git PR c++/86342 - -Wdeprecated-copy and system headers. * decl2.c (cp_warn_deprecated_use): Don't warn about declarations in system headers. From-SVN: r262231 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 040a84d02169..862b7370b7e6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-06-28 Jason Merrill + + PR c++/86342 - -Wdeprecated-copy and system headers. + * decl2.c (cp_warn_deprecated_use): Don't warn about declarations + in system headers. + 2018-06-27 David Malcolm PR c++/86329 diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 5fc6369d39d9..e06ffa613b71 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -5208,8 +5208,10 @@ cp_warn_deprecated_use (tree decl, tsubst_flags_t complain) && DECL_NONSTATIC_MEMBER_FUNCTION_P (decl) && copy_fn_p (decl)) { - warned = warning (OPT_Wdeprecated_copy, - "implicitly-declared %qD is deprecated", decl); + /* Don't warn about system library classes (c++/86342). */ + if (!DECL_IN_SYSTEM_HEADER (decl)) + warned = warning (OPT_Wdeprecated_copy, + "implicitly-declared %qD is deprecated", decl); if (warned) { tree ctx = DECL_CONTEXT (decl); diff --git a/gcc/testsuite/g++.dg/cpp0x/depr-copy2.C b/gcc/testsuite/g++.dg/cpp0x/depr-copy2.C new file mode 100644 index 000000000000..cef18b63d4ac --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/depr-copy2.C @@ -0,0 +1,17 @@ +// PR c++/86342 +// { dg-options -Wdeprecated-copy } + +# 1 "deprcopy.cc" +# 1 "deprcopy.h" 1 3 + +struct X { + X() { } + ~X() { } +}; +# 2 "deprcopy.cc" 2 + +int main() +{ + X x; + X y = x; +}