Index: clang-tidy/ClangTidy.h =================================================================== --- clang-tidy/ClangTidy.h +++ clang-tidy/ClangTidy.h @@ -14,12 +14,18 @@ #include "ClangTidyOptions.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Basic/Diagnostic.h" -#include "clang/Basic/SourceManager.h" -#include "clang/Tooling/Refactoring.h" -#include "llvm/ADT/StringExtras.h" +#include "clang/Basic/DiagnosticIDs.h" +#include "clang/Basic/LangOptions.h" +#include "clang/Basic/SourceLocation.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Support/raw_ostream.h" +#include +#include #include +#include #include +#include #include namespace clang { @@ -159,6 +165,7 @@ private: void run(const ast_matchers::MatchFinder::MatchResult &Result) override; StringRef getID() const override { return CheckName; } + std::string CheckName; ClangTidyContext *Context; Index: clang-tidy/ClangTidy.cpp =================================================================== --- clang-tidy/ClangTidy.cpp +++ clang-tidy/ClangTidy.cpp @@ -17,27 +17,38 @@ #include "ClangTidy.h" #include "ClangTidyDiagnosticConsumer.h" +#include "ClangTidyModule.h" #include "ClangTidyModuleRegistry.h" #include "clang/AST/ASTConsumer.h" -#include "clang/AST/ASTContext.h" -#include "clang/AST/Decl.h" #include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/ASTConsumers.h" +#include "clang/Basic/DiagnosticOptions.h" +#include "clang/Basic/FileManager.h" +#include "clang/Basic/FileSystemOptions.h" +#include "clang/Basic/SourceLocation.h" +#include "clang/Basic/SourceManager.h" +#include "clang/Basic/VirtualFileSystem.h" #include "clang/Frontend/CompilerInstance.h" -#include "clang/Frontend/FrontendActions.h" +#include "clang/Frontend/FrontendAction.h" #include "clang/Frontend/FrontendDiagnostic.h" #include "clang/Frontend/MultiplexConsumer.h" #include "clang/Frontend/TextDiagnosticPrinter.h" -#include "clang/Lex/PPCallbacks.h" -#include "clang/Lex/Preprocessor.h" -#include "clang/Rewrite/Frontend/FixItRewriter.h" -#include "clang/Rewrite/Frontend/FrontendActions.h" +#include "clang/Rewrite/Core/Rewriter.h" +#include "clang/StaticAnalyzer/Core/AnalyzerOptions.h" +#include "clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h" #include "clang/StaticAnalyzer/Frontend/AnalysisConsumer.h" -#include "clang/Tooling/Refactoring.h" +#include "clang/Tooling/ArgumentsAdjusters.h" #include "clang/Tooling/ReplacementsYaml.h" #include "clang/Tooling/Tooling.h" +#include "clang/Tooling/Core/Replacement.h" +#include "llvm/ADT/IntrusiveRefCntPtr.h" +#include "llvm/ADT/SmallString.h" +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringExtras.h" #include "llvm/Support/Process.h" -#include "llvm/Support/Signals.h" +#include "llvm/Support/raw_ostream.h" +#include "llvm/Support/Registry.h" +#include "llvm/Support/YAMLTraits.h" #include #include @@ -52,6 +63,7 @@ namespace tidy { namespace { + static const char *AnalyzerCheckNamePrefix = "clang-analyzer-"; static const StringRef StaticAnalyzerChecks[] = { @@ -211,7 +223,7 @@ std::vector> Checks; }; -} // namespace +} // anonymous namespace ClangTidyASTConsumerFactory::ClangTidyASTConsumerFactory( ClangTidyContext &Context) Index: clang-tidy/ClangTidyDiagnosticConsumer.h =================================================================== --- clang-tidy/ClangTidyDiagnosticConsumer.h +++ clang-tidy/ClangTidyDiagnosticConsumer.h @@ -11,24 +11,25 @@ #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CLANGTIDYDIAGNOSTICCONSUMER_H #include "ClangTidyOptions.h" +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringRef.h" #include "clang/Basic/Diagnostic.h" +#include "clang/Basic/DiagnosticIDs.h" +#include "clang/Basic/LangOptions.h" #include "clang/Basic/SourceManager.h" -#include "clang/Tooling/Refactoring.h" +#include "clang/Tooling/Core/Replacement.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringMap.h" #include "llvm/Support/Regex.h" #include "llvm/Support/Timer.h" +#include +#include +#include namespace clang { class ASTContext; class CompilerInstance; -namespace ast_matchers { -class MatchFinder; -} -namespace tooling { -class CompilationDatabase; -} namespace tidy { @@ -39,6 +40,7 @@ ClangTidyMessage(StringRef Message = ""); ClangTidyMessage(StringRef Message, const SourceManager &Sources, SourceLocation Loc); + std::string Message; std::string FilePath; unsigned FileOffset; Index: clang-tidy/ClangTidyDiagnosticConsumer.cpp =================================================================== --- clang-tidy/ClangTidyDiagnosticConsumer.cpp +++ clang-tidy/ClangTidyDiagnosticConsumer.cpp @@ -18,12 +18,23 @@ #include "ClangTidyDiagnosticConsumer.h" #include "ClangTidyOptions.h" +#include "clang/AST/ASTContext.h" #include "clang/AST/ASTDiagnostic.h" #include "clang/Basic/DiagnosticOptions.h" +#include "clang/Basic/FileManager.h" +#include "clang/Basic/SourceLocation.h" +#include "clang/Basic/SourceManager.h" #include "clang/Frontend/DiagnosticRenderer.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/ADT/SmallString.h" +#include +#include +#include #include +#include #include + using namespace clang; using namespace tidy; @@ -130,6 +141,7 @@ } return false; } + // Converts first glob from the comma-separated list of globs to Regex and // removes it and the trailing comma from the GlobList. static llvm::Regex ConsumeGlob(StringRef &GlobList) { @@ -550,6 +562,7 @@ std::tie(M2.FilePath, M2.FileOffset, M2.Message); } }; + struct EqualClangTidyError { bool operator()(const ClangTidyError &LHS, const ClangTidyError &RHS) const { LessClangTidyError Less; Index: clang-tidy/ClangTidyModule.h =================================================================== --- clang-tidy/ClangTidyModule.h +++ clang-tidy/ClangTidyModule.h @@ -14,8 +14,10 @@ #include "llvm/ADT/StringRef.h" #include #include +#include #include -#include +#include +#include "ClangTidyOptions.h" namespace clang { namespace tidy { Index: clang-tidy/ClangTidyModule.cpp =================================================================== --- clang-tidy/ClangTidyModule.cpp +++ clang-tidy/ClangTidyModule.cpp @@ -12,6 +12,8 @@ //===----------------------------------------------------------------------===// #include "ClangTidyModule.h" +#include "ClangTidy.h" +#include "ClangTidyDiagnosticConsumer.h" namespace clang { namespace tidy { Index: clang-tidy/ClangTidyOptions.cpp =================================================================== --- clang-tidy/ClangTidyOptions.cpp +++ clang-tidy/ClangTidyOptions.cpp @@ -10,13 +10,18 @@ #include "ClangTidyOptions.h" #include "ClangTidyModuleRegistry.h" #include "clang/Basic/LLVM.h" +#include "llvm/ADT/None.h" #include "llvm/ADT/SmallString.h" +#include "llvm/ADT/Twine.h" #include "llvm/Support/Debug.h" -#include "llvm/Support/Errc.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" #include "llvm/Support/YAMLTraits.h" #include "llvm/Support/raw_ostream.h" +#include +#include +#include #include #define DEBUG_TYPE "clang-tidy-options" @@ -50,6 +55,7 @@ IO.mapRequired("name", File.Name); IO.mapOptional("lines", File.LineRanges); } + static StringRef validate(IO &io, FileFilter &File) { if (File.Name.empty()) return "No file name specified"; @@ -72,12 +78,14 @@ NOptionMap(IO &) {} NOptionMap(IO &, const ClangTidyOptions::OptionMap &OptionMap) : Options(OptionMap.begin(), OptionMap.end()) {} + ClangTidyOptions::OptionMap denormalize(IO &) { ClangTidyOptions::OptionMap Map; for (const auto &KeyValue : Options) Map[KeyValue.first] = KeyValue.second; return Map; } + std::vector Options; }; Index: clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.h =================================================================== --- clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.h +++ clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.h @@ -11,6 +11,9 @@ #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_PRO_TYPE_MEMBER_INIT_H #include "../ClangTidy.h" +#include "../ClangTidyOptions.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "llvm/ADT/StringRef.h" namespace clang { namespace tidy { Index: clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp =================================================================== --- clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp +++ clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp @@ -12,9 +12,22 @@ #include "../utils/Matchers.h" #include "../utils/TypeTraits.h" #include "clang/AST/ASTContext.h" +#include "clang/AST/Decl.h" +#include "clang/AST/DeclCXX.h" +#include "clang/AST/Stmt.h" +#include "clang/AST/Type.h" +#include "clang/ASTMatchers/ASTMatchers.h" #include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/Basic/SourceLocation.h" #include "clang/Lex/Lexer.h" #include "llvm/ADT/SmallPtrSet.h" +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringExtras.h" +#include "llvm/Support/Casting.h" +#include "llvm/Support/raw_ostream.h" +#include +#include +#include using namespace clang::ast_matchers; using namespace clang::tidy::matchers; Index: clang-tidy/llvm/HeaderGuardCheck.h =================================================================== --- clang-tidy/llvm/HeaderGuardCheck.h +++ clang-tidy/llvm/HeaderGuardCheck.h @@ -11,6 +11,8 @@ #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LLVM_HEADER_GUARD_CHECK_H #include "../utils/HeaderGuard.h" +#include "llvm/ADT/StringRef.h" +#include namespace clang { namespace tidy { Index: clang-tidy/llvm/HeaderGuardCheck.cpp =================================================================== --- clang-tidy/llvm/HeaderGuardCheck.cpp +++ clang-tidy/llvm/HeaderGuardCheck.cpp @@ -8,6 +8,10 @@ //===----------------------------------------------------------------------===// #include "HeaderGuardCheck.h" +#include "clang/Tooling/Tooling.h" +#include +#include +#include namespace clang { namespace tidy { Index: clang-tidy/tool/ClangTidyMain.cpp =================================================================== --- clang-tidy/tool/ClangTidyMain.cpp +++ clang-tidy/tool/ClangTidyMain.cpp @@ -16,11 +16,26 @@ //===----------------------------------------------------------------------===// #include "../ClangTidy.h" +#include "../ClangTidyDiagnosticConsumer.h" +#include "../ClangTidyOptions.h" #include "clang/Tooling/CommonOptionsParser.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/CommandLine.h" +#include "llvm/Support/Compiler.h" +#include "llvm/Support/ErrorOr.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/Process.h" +#include "llvm/Support/raw_ostream.h" +#include "llvm/Support/Timer.h" +#include +#include +#include +#include +#include +#include using namespace clang::ast_matchers; -using namespace clang::driver; using namespace clang::tooling; using namespace llvm; Index: clang-tidy/utils/OptionsUtils.h =================================================================== --- clang-tidy/utils/OptionsUtils.h +++ clang-tidy/utils/OptionsUtils.h @@ -10,7 +10,11 @@ #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_OPTIONUTILS_H #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_OPTIONUTILS_H -#include "../ClangTidy.h" +#include "clang/Basic/LLVM.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/StringRef.h" +#include +#include namespace clang { namespace tidy { Index: clang-tidy/utils/OptionsUtils.cpp =================================================================== --- clang-tidy/utils/OptionsUtils.cpp +++ clang-tidy/utils/OptionsUtils.cpp @@ -8,6 +8,10 @@ //===----------------------------------------------------------------------===// #include "OptionsUtils.h" +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringExtras.h" +#include +#include namespace clang { namespace tidy {