Author: Tom Stellard Date: 2019-11-25T13:19:57-08:00 New Revision: 0e12815566b2f8dd2d3bfe2319e55b3ffb9767ae
URL: https://github.com/llvm/llvm-project/commit/0e12815566b2f8dd2d3bfe2319e55b3ffb9767ae DIFF: https://github.com/llvm/llvm-project/commit/0e12815566b2f8dd2d3bfe2319e55b3ffb9767ae.diff LOG: Revert "[Diagnostics] Put "deprecated copy" warnings into -Wdeprecated-copy" This reverts commit 9353c5dd0664ea444236e527bf93566e11dc34df. This commit introduced bot falures for multi-stage bots with -Werror. Added: Modified: clang/include/clang/Basic/DiagnosticGroups.td clang/include/clang/Basic/DiagnosticSemaKinds.td clang/lib/Sema/SemaDeclCXX.cpp Removed: clang/test/SemaCXX/deprecated-copy.cpp ################################################################################ diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index 666193e074f0..086e57778051 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -128,8 +128,6 @@ def CXX11CompatDeprecatedWritableStr : def DeprecatedAttributes : DiagGroup<"deprecated-attributes">; def DeprecatedCommaSubscript : DiagGroup<"deprecated-comma-subscript">; -def DeprecatedCopy : DiagGroup<"deprecated-copy">; -def DeprecatedCopyDtor : DiagGroup<"deprecated-copy-dtor">; def DeprecatedDeclarations : DiagGroup<"deprecated-declarations">; def UnavailableDeclarations : DiagGroup<"unavailable-declarations">; def UnguardedAvailabilityNew : DiagGroup<"unguarded-availability-new">; @@ -149,8 +147,6 @@ def DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings", // FIXME: Why is DeprecatedImplementations not in this group? def Deprecated : DiagGroup<"deprecated", [DeprecatedAttributes, DeprecatedCommaSubscript, - DeprecatedCopy, - DeprecatedCopyDtor, DeprecatedDeclarations, DeprecatedDynamicExceptionSpec, DeprecatedIncrementBool, @@ -817,7 +813,6 @@ def Move : DiagGroup<"move", [ ]>; def Extra : DiagGroup<"extra", [ - DeprecatedCopy, MissingFieldInitializers, IgnoredQualifiers, InitializerOverrides, diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index c19862addec9..799b3ed2ea92 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -551,13 +551,9 @@ def err_access_decl : Error< "use using declarations instead">; def warn_deprecated_copy_operation : Warning< "definition of implicit copy %select{constructor|assignment operator}1 " - "for %0 is deprecated because it has a user-declared copy " - "%select{assignment operator|constructor}1">, - InGroup<DeprecatedCopy>, DefaultIgnore; -def warn_deprecated_copy_dtor_operation : Warning< - "definition of implicit copy %select{constructor|assignment operator}1 " - "for %0 is deprecated because it has a user-declared destructor">, - InGroup<DeprecatedCopyDtor>, DefaultIgnore; + "for %0 is deprecated because it has a user-declared " + "%select{copy %select{assignment operator|constructor}1|destructor}2">, + InGroup<Deprecated>, DefaultIgnore; def warn_cxx17_compat_exception_spec_in_signature : Warning< "mangled name of %0 will change in C++17 due to non-throwing exception " "specification in function signature">, InGroup<CXX17CompatMangling>; diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 9c220efebe60..e3ea9788ad5d 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -12435,10 +12435,9 @@ static void diagnoseDeprecatedCopyOperation(Sema &S, CXXMethodDecl *CopyOp) { if (UserDeclaredOperation && UserDeclaredOperation->isUserProvided()) { S.Diag(UserDeclaredOperation->getLocation(), - isa<CXXDestructorDecl>(UserDeclaredOperation) - ? diag::warn_deprecated_copy_dtor_operation - : diag::warn_deprecated_copy_operation) - << RD << /*copy assignment*/ !isa<CXXConstructorDecl>(CopyOp); + diag::warn_deprecated_copy_operation) + << RD << /*copy assignment*/!isa<CXXConstructorDecl>(CopyOp) + << /*destructor*/isa<CXXDestructorDecl>(UserDeclaredOperation); } } diff --git a/clang/test/SemaCXX/deprecated-copy.cpp b/clang/test/SemaCXX/deprecated-copy.cpp deleted file mode 100644 index 4d3e798d912b..000000000000 --- a/clang/test/SemaCXX/deprecated-copy.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// RUN: %clang_cc1 -std=c++11 %s -Wdeprecated-copy -verify -// RUN: %clang_cc1 -std=c++11 %s -Wdeprecated-copy-dtor -DDEPRECATED_COPY_DTOR -verify -// RUN: %clang_cc1 -std=c++11 %s -Wextra -verify - -#ifdef DEPRECATED_COPY_DTOR -struct A { - int *ptr; - ~A() { delete ptr; } // expected-warning {{definition of implicit copy constructor for 'A' is deprecated because it has a user-declared destructor}} -}; - -void foo() { - A a{}; - A b = a; // expected-note {{implicit copy constructor for 'A' first required here}} -} -#else -struct B { - B &operator=(const B &); // expected-warning {{definition of implicit copy constructor for 'B' is deprecated because it has a user-declared copy assignment operator}} -}; - -void bar() { - B b1, b2(b1); // expected-note {{implicit copy constructor for 'B' first required here}} -} -#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits