summaryrefslogtreecommitdiff
path: root/lib/Tooling/Tooling.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2016-08-30 21:12:48 +0000
committerRichard Trieu <rtrieu@google.com>2016-08-30 21:12:48 +0000
commit7c5e085fb61f7d0fce7a08be2ca09e17dc0b0263 (patch)
tree8087125438c7d7ae5a58fd19f458d978f1caaf9d /lib/Tooling/Tooling.cpp
parent267f1e548086349dd4ca0df43b03f37a5d3527c6 (diff)
downloadclang-7c5e085fb61f7d0fce7a08be2ca09e17dc0b0263.tar.gz
Fix memory leak by storing returned pointer in std::unique_ptr
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280157 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Tooling/Tooling.cpp')
-rw-r--r--lib/Tooling/Tooling.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Tooling/Tooling.cpp b/lib/Tooling/Tooling.cpp
index 162a4914de..529c47ef1e 100644
--- a/lib/Tooling/Tooling.cpp
+++ b/lib/Tooling/Tooling.cpp
@@ -244,10 +244,9 @@ bool ToolInvocation::run() {
const char *const BinaryName = Argv[0];
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
unsigned MissingArgIndex, MissingArgCount;
- llvm::opt::InputArgList ParsedArgs =
- driver::createDriverOptTable()->ParseArgs(
- ArrayRef<const char *>(Argv).slice(1), MissingArgIndex,
- MissingArgCount);
+ std::unique_ptr<llvm::opt::OptTable> Opts(driver::createDriverOptTable());
+ llvm::opt::InputArgList ParsedArgs = Opts->ParseArgs(
+ ArrayRef<const char *>(Argv).slice(1), MissingArgIndex, MissingArgCount);
ParseDiagnosticArgs(*DiagOpts, ParsedArgs);
TextDiagnosticPrinter DiagnosticPrinter(
llvm::errs(), &*DiagOpts);