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) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits