diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-08-10 19:56:59 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-08-10 19:56:59 +0000 |
commit | 680c4c898c3ec1b10be6833e1dfad533724c4d20 (patch) | |
tree | c624345afa1a1fadd0b38af44456d9584bae31bb /clang-tools-extra | |
parent | 6beb6aa8f0f6fa20e8c8de7a17f39b101ed0da59 (diff) | |
download | bcm5719-llvm-680c4c898c3ec1b10be6833e1dfad533724c4d20.tar.gz bcm5719-llvm-680c4c898c3ec1b10be6833e1dfad533724c4d20.zip |
Recommit 213308: unique_ptr-ify ownership of ASTConsumers (reverted in r213324)
After post-commit review and community discussion, this seems like a
reasonable direction to continue, making ownership semantics explicit in
the source using the type system.
llvm-svn: 215324
Diffstat (limited to 'clang-tools-extra')
-rw-r--r-- | clang-tools-extra/clang-modernize/Core/Transform.cpp | 3 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/ClangTidy.cpp | 27 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/ClangTidy.h | 4 | ||||
-rw-r--r-- | clang-tools-extra/modularize/Modularize.cpp | 8 | ||||
-rw-r--r-- | clang-tools-extra/module-map-checker/ModuleMapChecker.cpp | 7 | ||||
-rw-r--r-- | clang-tools-extra/pp-trace/PPTrace.cpp | 7 | ||||
-rw-r--r-- | clang-tools-extra/unittests/clang-modernize/TransformTest.cpp | 4 |
7 files changed, 32 insertions, 28 deletions
diff --git a/clang-tools-extra/clang-modernize/Core/Transform.cpp b/clang-tools-extra/clang-modernize/Core/Transform.cpp index 9664ee41c7f..b716fe52ee4 100644 --- a/clang-tools-extra/clang-modernize/Core/Transform.cpp +++ b/clang-tools-extra/clang-modernize/Core/Transform.cpp @@ -49,7 +49,8 @@ private: FactoryAdaptor(MatchFinder &Finder, Transform &Owner) : Finder(Finder), Owner(Owner) {} - ASTConsumer *CreateASTConsumer(CompilerInstance &, StringRef) { + std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &, + StringRef) { return Finder.newASTConsumer(); } diff --git a/clang-tools-extra/clang-tidy/ClangTidy.cpp b/clang-tools-extra/clang-tidy/ClangTidy.cpp index ec528ba9083..9f2ffb10b1b 100644 --- a/clang-tools-extra/clang-tidy/ClangTidy.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidy.cpp @@ -179,10 +179,10 @@ private: class ClangTidyASTConsumer : public MultiplexConsumer { public: - ClangTidyASTConsumer(const SmallVectorImpl<ASTConsumer *> &Consumers, + ClangTidyASTConsumer(std::vector<std::unique_ptr<ASTConsumer>> Consumers, std::unique_ptr<ast_matchers::MatchFinder> Finder, std::vector<std::unique_ptr<ClangTidyCheck>> Checks) - : MultiplexConsumer(Consumers), Finder(std::move(Finder)), + : MultiplexConsumer(std::move(Consumers)), Finder(std::move(Finder)), Checks(std::move(Checks)) {} private: @@ -203,8 +203,8 @@ ClangTidyASTConsumerFactory::ClangTidyASTConsumerFactory( } } - -clang::ASTConsumer *ClangTidyASTConsumerFactory::CreateASTConsumer( +std::unique_ptr<clang::ASTConsumer> +ClangTidyASTConsumerFactory::CreateASTConsumer( clang::CompilerInstance &Compiler, StringRef File) { // FIXME: Move this to a separate method, so that CreateASTConsumer doesn't // modify Compiler. @@ -224,7 +224,7 @@ clang::ASTConsumer *ClangTidyASTConsumerFactory::CreateASTConsumer( Check->registerPPCallbacks(Compiler); } - SmallVector<ASTConsumer *, 2> Consumers; + std::vector<std::unique_ptr<ASTConsumer>> Consumers; if (!Checks.empty()) Consumers.push_back(Finder->newASTConsumer()); @@ -240,15 +240,16 @@ clang::ASTConsumer *ClangTidyASTConsumerFactory::CreateASTConsumer( AnalyzerOptions->AnalysisDiagOpt = PD_NONE; AnalyzerOptions->AnalyzeNestedBlocks = true; AnalyzerOptions->eagerlyAssumeBinOpBifurcation = true; - ento::AnalysisASTConsumer *AnalysisConsumer = ento::CreateAnalysisConsumer( - Compiler.getPreprocessor(), Compiler.getFrontendOpts().OutputFile, - AnalyzerOptions, Compiler.getFrontendOpts().Plugins); + std::unique_ptr<ento::AnalysisASTConsumer> AnalysisConsumer = + ento::CreateAnalysisConsumer( + Compiler.getPreprocessor(), Compiler.getFrontendOpts().OutputFile, + AnalyzerOptions, Compiler.getFrontendOpts().Plugins); AnalysisConsumer->AddDiagnosticConsumer( new AnalyzerDiagnosticConsumer(Context)); - Consumers.push_back(AnalysisConsumer); + Consumers.push_back(std::move(AnalysisConsumer)); } - return new ClangTidyASTConsumer(Consumers, std::move(Finder), - std::move(Checks)); + return llvm::make_unique<ClangTidyASTConsumer>( + std::move(Consumers), std::move(Finder), std::move(Checks)); } std::vector<std::string> @@ -338,8 +339,8 @@ ClangTidyStats runClangTidy(ClangTidyOptionsProvider *OptionsProvider, class Action : public ASTFrontendAction { public: Action(ClangTidyASTConsumerFactory *Factory) : Factory(Factory) {} - ASTConsumer *CreateASTConsumer(CompilerInstance &Compiler, - StringRef File) override { + std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &Compiler, + StringRef File) override { return Factory->CreateASTConsumer(Compiler, File); } diff --git a/clang-tools-extra/clang-tidy/ClangTidy.h b/clang-tools-extra/clang-tidy/ClangTidy.h index 005f92e5176..9486577f2a2 100644 --- a/clang-tools-extra/clang-tidy/ClangTidy.h +++ b/clang-tools-extra/clang-tidy/ClangTidy.h @@ -99,8 +99,8 @@ public: ClangTidyASTConsumerFactory(ClangTidyContext &Context); /// \brief Returns an ASTConsumer that runs the specified clang-tidy checks. - clang::ASTConsumer *CreateASTConsumer(clang::CompilerInstance &Compiler, - StringRef File); + std::unique_ptr<clang::ASTConsumer> + CreateASTConsumer(clang::CompilerInstance &Compiler, StringRef File); /// \brief Get the list of enabled checks. std::vector<std::string> getCheckNames(GlobList &Filter); diff --git a/clang-tools-extra/modularize/Modularize.cpp b/clang-tools-extra/modularize/Modularize.cpp index c95126f9677..83c5547a916 100644 --- a/clang-tools-extra/modularize/Modularize.cpp +++ b/clang-tools-extra/modularize/Modularize.cpp @@ -652,10 +652,10 @@ public: HadErrors(HadErrors) {} protected: - virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) { - return new CollectEntitiesConsumer(Entities, PPTracker, - CI.getPreprocessor(), InFile, HadErrors); + std::unique_ptr<clang::ASTConsumer> + CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override { + return llvm::make_unique<CollectEntitiesConsumer>( + Entities, PPTracker, CI.getPreprocessor(), InFile, HadErrors); } private: diff --git a/clang-tools-extra/module-map-checker/ModuleMapChecker.cpp b/clang-tools-extra/module-map-checker/ModuleMapChecker.cpp index d4c8b72cd84..43f3cd4508c 100644 --- a/clang-tools-extra/module-map-checker/ModuleMapChecker.cpp +++ b/clang-tools-extra/module-map-checker/ModuleMapChecker.cpp @@ -178,9 +178,10 @@ public: ModuleMapCheckerAction(ModuleMapChecker &Checker) : Checker(Checker) {} protected: - virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) { - return new ModuleMapCheckerConsumer(Checker, CI.getPreprocessor()); + std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) override { + return llvm::make_unique<ModuleMapCheckerConsumer>(Checker, + CI.getPreprocessor()); } private: diff --git a/clang-tools-extra/pp-trace/PPTrace.cpp b/clang-tools-extra/pp-trace/PPTrace.cpp index 4cf55c7629c..cb0aefaef69 100644 --- a/clang-tools-extra/pp-trace/PPTrace.cpp +++ b/clang-tools-extra/pp-trace/PPTrace.cpp @@ -120,9 +120,10 @@ public: : Ignore(Ignore), CallbackCalls(CallbackCalls) {} protected: - virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) { - return new PPTraceConsumer(Ignore, CallbackCalls, CI.getPreprocessor()); + std::unique_ptr<clang::ASTConsumer> + CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override { + return llvm::make_unique<PPTraceConsumer>(Ignore, CallbackCalls, + CI.getPreprocessor()); } private: diff --git a/clang-tools-extra/unittests/clang-modernize/TransformTest.cpp b/clang-tools-extra/unittests/clang-modernize/TransformTest.cpp index ae05f5a4e4f..6115efd57d3 100644 --- a/clang-tools-extra/unittests/clang-modernize/TransformTest.cpp +++ b/clang-tools-extra/unittests/clang-modernize/TransformTest.cpp @@ -93,8 +93,8 @@ public: }; struct ConsumerFactory { - ASTConsumer *newASTConsumer() { - return new TimePassingASTConsumer(&Called); + std::unique_ptr<ASTConsumer> newASTConsumer() { + return llvm::make_unique<TimePassingASTConsumer>(&Called); } bool Called; }; |