diff options
author | Alexander Kornienko <alexfh@google.com> | 2015-11-09 16:28:11 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2015-11-09 16:28:11 +0000 |
commit | 2e1c6fad8dd7fdf4e0aff43f8b0c7719fcac3547 (patch) | |
tree | 86518ffe9da64cbee843e0eb3cbdd030ac8f105b /clang-tidy/ClangTidy.cpp | |
parent | 1dfea28c516a777e6bc481efc83cc16fd45ffde7 (diff) |
Add ExtraArgs and ExtraArgsBefore options to enable clang warnings via configuration files.
Summary: This patch depends on http://reviews.llvm.org/D14191
Reviewers: djasper, klimek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D14192
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@252485 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-tidy/ClangTidy.cpp')
-rw-r--r-- | clang-tidy/ClangTidy.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang-tidy/ClangTidy.cpp b/clang-tidy/ClangTidy.cpp index c637f6a3..f9d0da76 100644 --- a/clang-tidy/ClangTidy.cpp +++ b/clang-tidy/ClangTidy.cpp @@ -36,6 +36,7 @@ #include "clang/Tooling/Refactoring.h" #include "clang/Tooling/ReplacementsYaml.h" #include "clang/Tooling/Tooling.h" +#include "llvm/ADT/StringExtras.h" #include "llvm/Support/Path.h" #include "llvm/Support/Process.h" #include "llvm/Support/Signals.h" @@ -376,6 +377,19 @@ runClangTidy(std::unique_ptr<ClangTidyOptionsProvider> OptionsProvider, std::vector<ClangTidyError> *Errors, ProfileData *Profile) { ClangTool Tool(Compilations, InputFiles); clang::tidy::ClangTidyContext Context(std::move(OptionsProvider)); + ArgumentsAdjuster PerFileExtraArgumentsInserter = [&Context]( + const CommandLineArguments &Args, StringRef Filename) { + ClangTidyOptions Opts = Context.getOptionsForFile(Filename); + CommandLineArguments AdjustedArgs; + if (Opts.ExtraArgsBefore) + AdjustedArgs = *Opts.ExtraArgsBefore; + AdjustedArgs.insert(AdjustedArgs.begin(), Args.begin(), Args.end()); + if (Opts.ExtraArgs) + AdjustedArgs.insert(AdjustedArgs.end(), Opts.ExtraArgs->begin(), + Opts.ExtraArgs->end()); + return AdjustedArgs; + }; + Tool.appendArgumentsAdjuster(PerFileExtraArgumentsInserter); if (Profile) Context.setCheckProfileData(Profile); |