[clang-tools-extra] 8266cd9 - [clangd] Disable cppcoreguidelines-macro-to-enum clang-tidy checker (#129478)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 4 00:46:56 PST 2025
Author: Nathan Ridge
Date: 2025-03-04T03:46:54-05:00
New Revision: 8266cd9f84b5a7d334ade7ff41393458b3789047
URL: https://github.com/llvm/llvm-project/commit/8266cd9f84b5a7d334ade7ff41393458b3789047
DIFF: https://github.com/llvm/llvm-project/commit/8266cd9f84b5a7d334ade7ff41393458b3789047.diff
LOG: [clangd] Disable cppcoreguidelines-macro-to-enum clang-tidy checker (#129478)
Clangd does not support its checker because the checker relies on having
seen preprocessor conditionals that occur in the preamble, and clangd
does not currently replay those.
This checker was already disabled under its main name,
modernize-macro-to-enum (https://github.com/clangd/clangd/issues/1464).
This commit disables it under the alternative name
cppcoreguidelines-macro-to-enum as well.
Fixes https://github.com/llvm/llvm-project/issues/127965
Added:
Modified:
clang-tools-extra/clangd/TidyProvider.cpp
clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clangd/TidyProvider.cpp b/clang-tools-extra/clangd/TidyProvider.cpp
index 2ac123246a4cb..1d79a7a7399ec 100644
--- a/clang-tools-extra/clangd/TidyProvider.cpp
+++ b/clang-tools-extra/clangd/TidyProvider.cpp
@@ -210,6 +210,7 @@ TidyProvider disableUnusableChecks(llvm::ArrayRef<std::string> ExtraBadChecks) {
// Check relies on seeing ifndef/define/endif directives,
// clangd doesn't replay those when using a preamble.
"-llvm-header-guard", "-modernize-macro-to-enum",
+ "-cppcoreguidelines-macro-to-enum",
// ----- Crashing Checks -----
diff --git a/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp b/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
index 7a47d6ebebf3b..f9ff6f21009f3 100644
--- a/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+++ b/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
@@ -823,6 +823,21 @@ TEST(DiagnosticTest, ClangTidyNoLiteralDataInMacroToken) {
EXPECT_THAT(TU.build().getDiagnostics(), UnorderedElementsAre()); // no-crash
}
+TEST(DiagnosticTest, ClangTidyMacroToEnumCheck) {
+ Annotations Main(R"cpp(
+ #if 1
+ auto foo();
+ #endif
+ )cpp");
+ TestTU TU = TestTU::withCode(Main.code());
+ std::vector<TidyProvider> Providers;
+ Providers.push_back(
+ addTidyChecks("cppcoreguidelines-macro-to-enum,modernize-macro-to-enum"));
+ Providers.push_back(disableUnusableChecks());
+ TU.ClangTidyProvider = combine(std::move(Providers));
+ EXPECT_THAT(TU.build().getDiagnostics(), UnorderedElementsAre()); // no-crash
+}
+
TEST(DiagnosticTest, ElseAfterReturnRange) {
Annotations Main(R"cpp(
int foo(int cond) {
More information about the cfe-commits
mailing list