From 5bae2c87d5946ee72ad31d88033ed5ecbd01ada2 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Thu, 17 Jul 2014 22:33:56 +0000 Subject: [PATCH] Revert "unique_ptr-ify ownership of ASTConsumers" This reverts commit r213308. Reverting to have some on-list discussion/confirmation about the ongoing direction of smart pointer usage in the LLVM project. llvm-svn: 213324 --- .../clang-modernize/Core/Transform.cpp | 3 +-- clang-tools-extra/clang-tidy/ClangTidy.cpp | 27 +++++++++++----------- clang-tools-extra/clang-tidy/ClangTidy.h | 4 ++-- clang-tools-extra/modularize/Modularize.cpp | 8 +++---- .../module-map-checker/ModuleMapChecker.cpp | 7 +++--- clang-tools-extra/pp-trace/PPTrace.cpp | 7 +++--- .../unittests/clang-modernize/TransformTest.cpp | 4 ++-- 7 files changed, 28 insertions(+), 32 deletions(-) diff --git a/clang-tools-extra/clang-modernize/Core/Transform.cpp b/clang-tools-extra/clang-modernize/Core/Transform.cpp index 30caab6aa..6bb1478 100644 --- a/clang-tools-extra/clang-modernize/Core/Transform.cpp +++ b/clang-tools-extra/clang-modernize/Core/Transform.cpp @@ -49,8 +49,7 @@ private: FactoryAdaptor(MatchFinder &Finder, Transform &Owner) : Finder(Finder), Owner(Owner) {} - std::unique_ptr CreateASTConsumer(CompilerInstance &, - StringRef) { + 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 3445fb5..98a5c618 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(std::vector> Consumers, + ClangTidyASTConsumer(const SmallVectorImpl &Consumers, std::unique_ptr Finder, std::vector> Checks) - : MultiplexConsumer(std::move(Consumers)), Finder(std::move(Finder)), + : MultiplexConsumer(Consumers), Finder(std::move(Finder)), Checks(std::move(Checks)) {} private: @@ -203,8 +203,8 @@ ClangTidyASTConsumerFactory::ClangTidyASTConsumerFactory( } } -std::unique_ptr -ClangTidyASTConsumerFactory::CreateASTConsumer( + +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 @@ ClangTidyASTConsumerFactory::CreateASTConsumer( Check->registerPPCallbacks(Compiler); } - std::vector> Consumers; + SmallVector Consumers; if (!Checks.empty()) Consumers.push_back(Finder->newASTConsumer()); @@ -240,16 +240,15 @@ ClangTidyASTConsumerFactory::CreateASTConsumer( AnalyzerOptions->AnalysisDiagOpt = PD_NONE; AnalyzerOptions->AnalyzeNestedBlocks = true; AnalyzerOptions->eagerlyAssumeBinOpBifurcation = true; - std::unique_ptr AnalysisConsumer = - ento::CreateAnalysisConsumer( - Compiler.getPreprocessor(), Compiler.getFrontendOpts().OutputFile, - AnalyzerOptions, Compiler.getFrontendOpts().Plugins); + ento::AnalysisASTConsumer *AnalysisConsumer = ento::CreateAnalysisConsumer( + Compiler.getPreprocessor(), Compiler.getFrontendOpts().OutputFile, + AnalyzerOptions, Compiler.getFrontendOpts().Plugins); AnalysisConsumer->AddDiagnosticConsumer( new AnalyzerDiagnosticConsumer(Context)); - Consumers.push_back(std::move(AnalysisConsumer)); + Consumers.push_back(AnalysisConsumer); } - return llvm::make_unique( - std::move(Consumers), std::move(Finder), std::move(Checks)); + return new ClangTidyASTConsumer(Consumers, std::move(Finder), + std::move(Checks)); } std::vector @@ -340,8 +339,8 @@ ClangTidyStats runClangTidy(ClangTidyOptionsProvider *OptionsProvider, class Action : public ASTFrontendAction { public: Action(ClangTidyASTConsumerFactory *Factory) : Factory(Factory) {} - std::unique_ptr CreateASTConsumer(CompilerInstance &Compiler, - StringRef File) override { + 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 cec52c0..8b181fc 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. - std::unique_ptr - CreateASTConsumer(clang::CompilerInstance &Compiler, StringRef File); + clang::ASTConsumer *CreateASTConsumer(clang::CompilerInstance &Compiler, + StringRef File); /// \brief Get the list of enabled checks. std::vector getCheckNames(ChecksFilter &Filter); diff --git a/clang-tools-extra/modularize/Modularize.cpp b/clang-tools-extra/modularize/Modularize.cpp index 730e62f..db67754 100644 --- a/clang-tools-extra/modularize/Modularize.cpp +++ b/clang-tools-extra/modularize/Modularize.cpp @@ -652,10 +652,10 @@ public: HadErrors(HadErrors) {} protected: - std::unique_ptr - CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override { - return llvm::make_unique( - Entities, PPTracker, CI.getPreprocessor(), InFile, HadErrors); + virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) { + return new 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 43f3cd45..d4c8b72 100644 --- a/clang-tools-extra/module-map-checker/ModuleMapChecker.cpp +++ b/clang-tools-extra/module-map-checker/ModuleMapChecker.cpp @@ -178,10 +178,9 @@ public: ModuleMapCheckerAction(ModuleMapChecker &Checker) : Checker(Checker) {} protected: - std::unique_ptr CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) override { - return llvm::make_unique(Checker, - CI.getPreprocessor()); + virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) { + return new ModuleMapCheckerConsumer(Checker, CI.getPreprocessor()); } private: diff --git a/clang-tools-extra/pp-trace/PPTrace.cpp b/clang-tools-extra/pp-trace/PPTrace.cpp index 9dc1bbb..ed955fb 100644 --- a/clang-tools-extra/pp-trace/PPTrace.cpp +++ b/clang-tools-extra/pp-trace/PPTrace.cpp @@ -120,10 +120,9 @@ public: : Ignore(Ignore), CallbackCalls(CallbackCalls) {} protected: - std::unique_ptr - CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override { - return llvm::make_unique(Ignore, CallbackCalls, - CI.getPreprocessor()); + virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) { + return new 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 6115efd..ae05f5a 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 { - std::unique_ptr newASTConsumer() { - return llvm::make_unique(&Called); + ASTConsumer *newASTConsumer() { + return new TimePassingASTConsumer(&Called); } bool Called; }; -- 2.7.4