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 | 070937a1d47b76cbf4fcacee25efd86c9d3ffd4c (patch) | |
| tree | 88dca99de39cf4d2d4f12eeb47330061f35f8c2f /clang/lib/Tooling | |
| parent | cceb92a0754f9c59a82d9fa9c5312826eb94a642 (diff) | |
| download | bcm5719-llvm-070937a1d47b76cbf4fcacee25efd86c9d3ffd4c.tar.gz bcm5719-llvm-070937a1d47b76cbf4fcacee25efd86c9d3ffd4c.zip | |
Fix memory leak by storing returned pointer in std::unique_ptr
llvm-svn: 280157
Diffstat (limited to 'clang/lib/Tooling')
| -rw-r--r-- | clang/lib/Tooling/Tooling.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp index 162a4914dec..529c47ef1e7 100644 --- a/clang/lib/Tooling/Tooling.cpp +++ b/clang/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); |

