Skip to content

Commit b9574ac

Browse files
committed
unique_ptr-ify ownership of ASTConsumers
llvm-svn: 213308
1 parent a51666a commit b9574ac

File tree

7 files changed

+32
-28
lines changed

7 files changed

+32
-28
lines changed

clang-tools-extra/clang-modernize/Core/Transform.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ class ActionFactory : public clang::tooling::FrontendActionFactory {
4949
FactoryAdaptor(MatchFinder &Finder, Transform &Owner)
5050
: Finder(Finder), Owner(Owner) {}
5151

52-
ASTConsumer *CreateASTConsumer(CompilerInstance &, StringRef) {
52+
std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &,
53+
StringRef) {
5354
return Finder.newASTConsumer();
5455
}
5556

clang-tools-extra/clang-tidy/ClangTidy.cpp

+14-13
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,10 @@ class ErrorReporter {
179179

180180
class ClangTidyASTConsumer : public MultiplexConsumer {
181181
public:
182-
ClangTidyASTConsumer(const SmallVectorImpl<ASTConsumer *> &Consumers,
182+
ClangTidyASTConsumer(std::vector<std::unique_ptr<ASTConsumer>> Consumers,
183183
std::unique_ptr<ast_matchers::MatchFinder> Finder,
184184
std::vector<std::unique_ptr<ClangTidyCheck>> Checks)
185-
: MultiplexConsumer(Consumers), Finder(std::move(Finder)),
185+
: MultiplexConsumer(std::move(Consumers)), Finder(std::move(Finder)),
186186
Checks(std::move(Checks)) {}
187187

188188
private:
@@ -203,8 +203,8 @@ ClangTidyASTConsumerFactory::ClangTidyASTConsumerFactory(
203203
}
204204
}
205205

206-
207-
clang::ASTConsumer *ClangTidyASTConsumerFactory::CreateASTConsumer(
206+
std::unique_ptr<clang::ASTConsumer>
207+
ClangTidyASTConsumerFactory::CreateASTConsumer(
208208
clang::CompilerInstance &Compiler, StringRef File) {
209209
// FIXME: Move this to a separate method, so that CreateASTConsumer doesn't
210210
// modify Compiler.
@@ -224,7 +224,7 @@ clang::ASTConsumer *ClangTidyASTConsumerFactory::CreateASTConsumer(
224224
Check->registerPPCallbacks(Compiler);
225225
}
226226

227-
SmallVector<ASTConsumer *, 2> Consumers;
227+
std::vector<std::unique_ptr<ASTConsumer>> Consumers;
228228
if (!Checks.empty())
229229
Consumers.push_back(Finder->newASTConsumer());
230230

@@ -240,15 +240,16 @@ clang::ASTConsumer *ClangTidyASTConsumerFactory::CreateASTConsumer(
240240
AnalyzerOptions->AnalysisDiagOpt = PD_NONE;
241241
AnalyzerOptions->AnalyzeNestedBlocks = true;
242242
AnalyzerOptions->eagerlyAssumeBinOpBifurcation = true;
243-
ento::AnalysisASTConsumer *AnalysisConsumer = ento::CreateAnalysisConsumer(
244-
Compiler.getPreprocessor(), Compiler.getFrontendOpts().OutputFile,
245-
AnalyzerOptions, Compiler.getFrontendOpts().Plugins);
243+
std::unique_ptr<ento::AnalysisASTConsumer> AnalysisConsumer =
244+
ento::CreateAnalysisConsumer(
245+
Compiler.getPreprocessor(), Compiler.getFrontendOpts().OutputFile,
246+
AnalyzerOptions, Compiler.getFrontendOpts().Plugins);
246247
AnalysisConsumer->AddDiagnosticConsumer(
247248
new AnalyzerDiagnosticConsumer(Context));
248-
Consumers.push_back(AnalysisConsumer);
249+
Consumers.push_back(std::move(AnalysisConsumer));
249250
}
250-
return new ClangTidyASTConsumer(Consumers, std::move(Finder),
251-
std::move(Checks));
251+
return llvm::make_unique<ClangTidyASTConsumer>(
252+
std::move(Consumers), std::move(Finder), std::move(Checks));
252253
}
253254

254255
std::vector<std::string>
@@ -339,8 +340,8 @@ ClangTidyStats runClangTidy(ClangTidyOptionsProvider *OptionsProvider,
339340
class Action : public ASTFrontendAction {
340341
public:
341342
Action(ClangTidyASTConsumerFactory *Factory) : Factory(Factory) {}
342-
ASTConsumer *CreateASTConsumer(CompilerInstance &Compiler,
343-
StringRef File) override {
343+
std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &Compiler,
344+
StringRef File) override {
344345
return Factory->CreateASTConsumer(Compiler, File);
345346
}
346347

clang-tools-extra/clang-tidy/ClangTidy.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ class ClangTidyASTConsumerFactory {
9999
ClangTidyASTConsumerFactory(ClangTidyContext &Context);
100100

101101
/// \brief Returns an ASTConsumer that runs the specified clang-tidy checks.
102-
clang::ASTConsumer *CreateASTConsumer(clang::CompilerInstance &Compiler,
103-
StringRef File);
102+
std::unique_ptr<clang::ASTConsumer>
103+
CreateASTConsumer(clang::CompilerInstance &Compiler, StringRef File);
104104

105105
/// \brief Get the list of enabled checks.
106106
std::vector<std::string> getCheckNames(ChecksFilter &Filter);

clang-tools-extra/modularize/Modularize.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -652,10 +652,10 @@ class CollectEntitiesAction : public SyntaxOnlyAction {
652652
HadErrors(HadErrors) {}
653653

654654
protected:
655-
virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
656-
StringRef InFile) {
657-
return new CollectEntitiesConsumer(Entities, PPTracker,
658-
CI.getPreprocessor(), InFile, HadErrors);
655+
std::unique_ptr<clang::ASTConsumer>
656+
CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override {
657+
return llvm::make_unique<CollectEntitiesConsumer>(
658+
Entities, PPTracker, CI.getPreprocessor(), InFile, HadErrors);
659659
}
660660

661661
private:

clang-tools-extra/module-map-checker/ModuleMapChecker.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,10 @@ class ModuleMapCheckerAction : public SyntaxOnlyAction {
178178
ModuleMapCheckerAction(ModuleMapChecker &Checker) : Checker(Checker) {}
179179

180180
protected:
181-
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
182-
StringRef InFile) {
183-
return new ModuleMapCheckerConsumer(Checker, CI.getPreprocessor());
181+
std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
182+
StringRef InFile) override {
183+
return llvm::make_unique<ModuleMapCheckerConsumer>(Checker,
184+
CI.getPreprocessor());
184185
}
185186

186187
private:

clang-tools-extra/pp-trace/PPTrace.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,10 @@ class PPTraceAction : public SyntaxOnlyAction {
120120
: Ignore(Ignore), CallbackCalls(CallbackCalls) {}
121121

122122
protected:
123-
virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
124-
StringRef InFile) {
125-
return new PPTraceConsumer(Ignore, CallbackCalls, CI.getPreprocessor());
123+
std::unique_ptr<clang::ASTConsumer>
124+
CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override {
125+
return llvm::make_unique<PPTraceConsumer>(Ignore, CallbackCalls,
126+
CI.getPreprocessor());
126127
}
127128

128129
private:

clang-tools-extra/unittests/clang-modernize/TransformTest.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ class TimePassingASTConsumer : public ASTConsumer {
9393
};
9494

9595
struct ConsumerFactory {
96-
ASTConsumer *newASTConsumer() {
97-
return new TimePassingASTConsumer(&Called);
96+
std::unique_ptr<ASTConsumer> newASTConsumer() {
97+
return llvm::make_unique<TimePassingASTConsumer>(&Called);
9898
}
9999
bool Called;
100100
};

0 commit comments

Comments
 (0)