diff options
| author | Aaron Ballman <aaron@aaronballman.com> | 2015-08-28 17:58:10 +0000 |
|---|---|---|
| committer | Aaron Ballman <aaron@aaronballman.com> | 2015-08-28 17:58:10 +0000 |
| commit | 8b0583ef1be53849546f76f8dcb60c031c64abb3 (patch) | |
| tree | bd2e4cb393fd5410219ac0ecda8cf16556b3a924 /clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp | |
| parent | 28e2b717fc42a9282e56ab58c349b13108fc70e0 (diff) | |
| download | bcm5719-llvm-8b0583ef1be53849546f76f8dcb60c031c64abb3.tar.gz bcm5719-llvm-8b0583ef1be53849546f76f8dcb60c031c64abb3.zip | |
Disable several more clang-tidy modernize checkers when not compiling in C++ mode. Loop conversion would make recommendations for C code, so added a test to ensure that does not happen. The pass by value, use auto and replace auto_ptr checkers would not make recommendations for C code, and are disabled for performance reasons, but do not require an extra test.
llvm-svn: 246310
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp')
| -rw-r--r-- | clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp index 83f12824afe..4da3efb9888 100644 --- a/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp @@ -198,15 +198,24 @@ void ReplaceAutoPtrCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { } void ReplaceAutoPtrCheck::registerMatchers(MatchFinder *Finder) { - Finder->addMatcher(makeAutoPtrTypeLocMatcher(), this); - Finder->addMatcher(makeAutoPtrUsingDeclMatcher(), this); - Finder->addMatcher(makeTransferOwnershipExprMatcher(), this); + // Only register the matchers for C++; the functionality currently does not + // provide any benefit to other languages, despite being benign. + if (getLangOpts().CPlusPlus) { + Finder->addMatcher(makeAutoPtrTypeLocMatcher(), this); + Finder->addMatcher(makeAutoPtrUsingDeclMatcher(), this); + Finder->addMatcher(makeTransferOwnershipExprMatcher(), this); + } } void ReplaceAutoPtrCheck::registerPPCallbacks(CompilerInstance &Compiler) { - Inserter.reset(new IncludeInserter(Compiler.getSourceManager(), - Compiler.getLangOpts(), IncludeStyle)); - Compiler.getPreprocessor().addPPCallbacks(Inserter->CreatePPCallbacks()); + // Only register the preprocessor callbacks for C++; the functionality + // currently does not provide any benefit to other languages, despite being + // benign. + if (getLangOpts().CPlusPlus) { + Inserter.reset(new IncludeInserter(Compiler.getSourceManager(), + Compiler.getLangOpts(), IncludeStyle)); + Compiler.getPreprocessor().addPPCallbacks(Inserter->CreatePPCallbacks()); + } } void ReplaceAutoPtrCheck::check(const MatchFinder::MatchResult &Result) { |

