summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/Tooling.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-04-25 14:49:37 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-04-25 14:49:37 +0000
commit39808ff9015d8ebe252c7f6e7741595a5416d404 (patch)
treea4666269bc6dab1be61ef4555019e53088e68095 /clang/lib/Tooling/Tooling.cpp
parentc435fb07dd625fcd7be1aee0ffb4ce348a316a28 (diff)
downloadbcm5719-llvm-39808ff9015d8ebe252c7f6e7741595a5416d404.tar.gz
bcm5719-llvm-39808ff9015d8ebe252c7f6e7741595a5416d404.zip
Improve ownership of ASTUnits in libTooling by using std::unique_ptr.
llvm-svn: 207229
Diffstat (limited to 'clang/lib/Tooling/Tooling.cpp')
-rw-r--r--clang/lib/Tooling/Tooling.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp
index 25ade338e1a..9bd85ee357a 100644
--- a/clang/lib/Tooling/Tooling.cpp
+++ b/clang/lib/Tooling/Tooling.cpp
@@ -371,29 +371,29 @@ int ClangTool::run(ToolAction *Action) {
namespace {
class ASTBuilderAction : public ToolAction {
- std::vector<ASTUnit *> &ASTs;
+ std::vector<std::unique_ptr<ASTUnit>> &ASTs;
public:
- ASTBuilderAction(std::vector<ASTUnit *> &ASTs) : ASTs(ASTs) {}
+ ASTBuilderAction(std::vector<std::unique_ptr<ASTUnit>> &ASTs) : ASTs(ASTs) {}
bool runInvocation(CompilerInvocation *Invocation, FileManager *Files,
DiagnosticConsumer *DiagConsumer) override {
// FIXME: This should use the provided FileManager.
- ASTUnit *AST = ASTUnit::LoadFromCompilerInvocation(
+ std::unique_ptr<ASTUnit> AST(ASTUnit::LoadFromCompilerInvocation(
Invocation, CompilerInstance::createDiagnostics(
&Invocation->getDiagnosticOpts(), DiagConsumer,
- /*ShouldOwnClient=*/false));
+ /*ShouldOwnClient=*/false)));
if (!AST)
return false;
- ASTs.push_back(AST);
+ ASTs.push_back(std::move(AST));
return true;
}
};
}
-int ClangTool::buildASTs(std::vector<ASTUnit *> &ASTs) {
+int ClangTool::buildASTs(std::vector<std::unique_ptr<ASTUnit>> &ASTs) {
ASTBuilderAction Action(ASTs);
return run(&Action);
}
@@ -408,7 +408,7 @@ ASTUnit *buildASTFromCodeWithArgs(const Twine &Code,
SmallString<16> FileNameStorage;
StringRef FileNameRef = FileName.toNullTerminatedStringRef(FileNameStorage);
- std::vector<ASTUnit *> ASTs;
+ std::vector<std::unique_ptr<ASTUnit>> ASTs;
ASTBuilderAction Action(ASTs);
ToolInvocation Invocation(getSyntaxOnlyToolArgs(Args, FileNameRef), &Action, 0);
@@ -419,7 +419,7 @@ ASTUnit *buildASTFromCodeWithArgs(const Twine &Code,
return 0;
assert(ASTs.size() == 1);
- return ASTs[0];
+ return ASTs[0].release();
}
} // end namespace tooling
OpenPOWER on IntegriCloud