Author: Sam McCall Date: 2023-07-19T23:43:47+02:00 New Revision: e289ee99cec4607243aeaa01504f6b3cf65b65fe
URL: https://github.com/llvm/llvm-project/commit/e289ee99cec4607243aeaa01504f6b3cf65b65fe DIFF: https://github.com/llvm/llvm-project/commit/e289ee99cec4607243aeaa01504f6b3cf65b65fe.diff LOG: [clangd] enable unused-include warnings for standard library headers Other <angle-quoted> headers are still excluded. Differential Revision: https://reviews.llvm.org/D155385 Added: Modified: clang-tools-extra/clangd/IncludeCleaner.cpp clang-tools-extra/clangd/tool/ClangdMain.cpp clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/IncludeCleaner.cpp b/clang-tools-extra/clangd/IncludeCleaner.cpp index 6c33fd3588ffff..2ecc15973337a7 100644 --- a/clang-tools-extra/clangd/IncludeCleaner.cpp +++ b/clang-tools-extra/clangd/IncludeCleaner.cpp @@ -36,7 +36,6 @@ #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/GenericUniformityImpl.h" #include "llvm/ADT/STLExtras.h" -#include "llvm/ADT/STLFunctionalExtras.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" @@ -55,10 +54,6 @@ #include <vector> namespace clang::clangd { - -static bool AnalyzeStdlib = false; -void setIncludeCleanerAnalyzesStdlib(bool B) { AnalyzeStdlib = B; } - namespace { bool isIgnored(llvm::StringRef HeaderPath, HeaderFilter IgnoreHeaders) { @@ -78,11 +73,8 @@ bool mayConsiderUnused( // FIXME(kirillbobyrev): We currently do not support the umbrella headers. // System headers are likely to be standard library headers. // Until we have good support for umbrella headers, don't warn about them. - if (Inc.Written.front() == '<') { - if (AnalyzeStdlib && tooling::stdlib::Header::named(Inc.Written)) - return true; - return false; - } + if (Inc.Written.front() == '<') + return tooling::stdlib::Header::named(Inc.Written).has_value(); assert(Inc.HeaderID); auto HID = static_cast<IncludeStructure::HeaderID>(*Inc.HeaderID); auto FE = AST.getSourceManager().getFileManager().getFileRef( diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index 865dd0a44aa4a9..ca5cced197cd24 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -273,15 +273,6 @@ opt<bool> ImportInsertions{ init(CodeCompleteOptions().ImportInsertions), }; -opt<bool> IncludeCleanerStdlib{ - "include-cleaner-stdlib", - cat(Features), - desc("Apply include-cleaner analysis to standard library headers " - "(immature!)"), - init(false), - Hidden, -}; - opt<bool> HeaderInsertionDecorators{ "header-insertion-decorators", cat(Features), @@ -317,7 +308,7 @@ RetiredFlag<bool> CrossFileRename("cross-file-rename"); RetiredFlag<std::string> ClangTidyChecks("clang-tidy-checks"); RetiredFlag<bool> InlayHints("inlay-hints"); RetiredFlag<bool> FoldingRanges("folding-ranges"); - +RetiredFlag<bool> IncludeCleanerStdlib("include-cleaner-stdlib"); opt<int> LimitResults{ "limit-results", @@ -968,7 +959,6 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var }; if (ForceOffsetEncoding != OffsetEncoding::UnsupportedEncoding) Opts.Encoding = ForceOffsetEncoding; - setIncludeCleanerAnalyzesStdlib(IncludeCleanerStdlib); if (CheckFile.getNumOccurrences()) { llvm::SmallString<256> Path; diff --git a/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp b/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp index aefdba05dace7a..c55351fb1f91d8 100644 --- a/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp +++ b/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp @@ -73,10 +73,6 @@ MATCHER_P(writtenInclusion, Written, "") { } TEST(IncludeCleaner, StdlibUnused) { - setIncludeCleanerAnalyzesStdlib(true); - auto Cleanup = - llvm::make_scope_exit([] { setIncludeCleanerAnalyzesStdlib(false); }); - auto TU = TestTU::withCode(R"cpp( #include <list> #include <queue> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits