From 40546cb38189e438a81faa6400c103d159600f9e Mon Sep 17 00:00:00 2001 From: Carlos Galvez Date: Tue, 12 Oct 2021 10:05:43 -0400 Subject: [PATCH] Remove 'IgnoreDestructors = true' from cppcoreguidelines-explicit-virtual-functions This requirement was introduced in the C++ Core guidelines in 2016: https://github.com/isocpp/CppCoreGuidelines/commit/1894380d0abf4d7d49a983005647e0d41ecbf214 Then clang-tidy got updated to comply with the rule. However in 2019 this decision was reverted: https://github.com/isocpp/CppCoreGuidelines/commit/5fdfb20b760c5307bf86873798a146fcd7e912e6 Therefore we need to apply the correct configuration to clang-tidy again. This also makes this cppcoreguidelines check consistent with the other 2 alias checks: hicpp-use-override and modernize-use-override. Additionally, add another RUN line to the unit test, to make sure cppcoreguidelines-explicit-virtual-functions is tested. --- .../clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp | 3 --- clang-tools-extra/docs/ReleaseNotes.rst | 4 ++++ clang-tools-extra/test/clang-tidy/checkers/modernize-use-override.cpp | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp index c7b73dd..1c468b5 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp @@ -106,9 +106,6 @@ public: Opts["cppcoreguidelines-non-private-member-variables-in-classes." "IgnoreClassesWithAllMemberVariablesBeingPublic"] = "true"; - Opts["cppcoreguidelines-explicit-virtual-functions." - "IgnoreDestructors"] = "true"; - return Options; } }; diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 3257a3d..498c36e 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -113,6 +113,10 @@ New check aliases Changes in existing checks ^^^^^^^^^^^^^^^^^^^^^^^^^^ +- Removed default setting `cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors = "true"`, + to match the current state of the C++ Core Guidelines. + + Removed checks ^^^^^^^^^^^^^^ diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-override.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-override.cpp index 8e4e113..55f226b 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-override.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-override.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy %s modernize-use-override %t -- -- -fexceptions +// RUN: %check_clang_tidy %s modernize-use-override,cppcoreguidelines-explicit-virtual-functions %t -- -- -fexceptions #define ABSTRACT = 0 @@ -52,7 +52,7 @@ struct Base { struct SimpleCases : public Base { public: virtual ~SimpleCases(); - // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: prefer using 'override' or (rarely) 'final' instead of 'virtual' [modernize-use-override] + // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: prefer using 'override' or (rarely) 'final' instead of 'virtual' // CHECK-FIXES: {{^}} ~SimpleCases() override; void a(); -- 2.7.4