diff options
author | Gabor Horvath <xazax.hun@gmail.com> | 2015-03-11 17:25:22 +0000 |
---|---|---|
committer | Gabor Horvath <xazax.hun@gmail.com> | 2015-03-11 17:25:22 +0000 |
commit | 545c21e5dea2983bd77cd091b2cb69927f39fbbe (patch) | |
tree | 8b3bef70c8594f90fab8c98aa31a6d39c1619963 /clang-tidy/ClangTidy.cpp | |
parent | 22efda02bda4270e15dcc10cb5446f0df7c506e0 (diff) |
[clang-tidy] Static Analyzer checker configuration options pass-through.
Reviewed by: Alexander Kornienko
Differential Revision: http://reviews.llvm.org/D8164
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@231941 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-tidy/ClangTidy.cpp')
-rw-r--r-- | clang-tidy/ClangTidy.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang-tidy/ClangTidy.cpp b/clang-tidy/ClangTidy.cpp index b8afc08d..1460e8cf 100644 --- a/clang-tidy/ClangTidy.cpp +++ b/clang-tidy/ClangTidy.cpp @@ -204,6 +204,17 @@ ClangTidyASTConsumerFactory::ClangTidyASTConsumerFactory( } } +static void setStaticAnalyzerCheckerOpts(const ClangTidyOptions &Opts, + AnalyzerOptionsRef AnalyzerOptions) { + StringRef AnalyzerPrefix(AnalyzerCheckNamePrefix); + for (const auto &Opt : Opts.CheckOptions) { + StringRef OptName(Opt.first); + if (!OptName.startswith(AnalyzerPrefix)) + continue; + AnalyzerOptions->Config[OptName.substr(AnalyzerPrefix.size())] = Opt.second; + } +} + std::unique_ptr<clang::ASTConsumer> ClangTidyASTConsumerFactory::CreateASTConsumer( clang::CompilerInstance &Compiler, StringRef File) { @@ -241,6 +252,7 @@ ClangTidyASTConsumerFactory::CreateASTConsumer( GlobList &Filter = Context.getChecksFilter(); AnalyzerOptions->CheckersControlList = getCheckersControlList(Filter); if (!AnalyzerOptions->CheckersControlList.empty()) { + setStaticAnalyzerCheckerOpts(Context.getOptions(), AnalyzerOptions); AnalyzerOptions->AnalysisStoreOpt = RegionStoreModel; AnalyzerOptions->AnalysisDiagOpt = PD_NONE; AnalyzerOptions->AnalyzeNestedBlocks = true; |