diff options
author | Richard Trieu <rtrieu@google.com> | 2016-08-30 21:12:48 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2016-08-30 21:12:48 +0000 |
commit | 7c5e085fb61f7d0fce7a08be2ca09e17dc0b0263 (patch) | |
tree | 8087125438c7d7ae5a58fd19f458d978f1caaf9d /lib/Tooling/Tooling.cpp | |
parent | 267f1e548086349dd4ca0df43b03f37a5d3527c6 (diff) | |
download | clang-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.cpp | 7 |
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); |