Fwd: r207899 - [leaks] Don't leak the fake arguments we synthesize for LLVM option
David Blaikie
dblaikie at gmail.com
Sat May 3 06:55:15 PDT 2014
(oops, sorry Chandler, accidentally replied rather than reply-all.
Re-adding the mailing list)
On Sat, May 3, 2014 at 1:39 AM, Chandler Carruth <chandlerc at gmail.com> wrote:
> Author: chandlerc
> Date: Sat May 3 03:39:35 2014
> New Revision: 207899
>
> URL: http://llvm.org/viewvc/llvm-project?rev=207899&view=rev
> Log:
> [leaks] Don't leak the fake arguments we synthesize for LLVM option
> parsing.
>
> Modified:
> cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp
>
> Modified: cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp?rev=207899&r1=207898&r2=207899&view=diff
> ==============================================================================
> --- cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp (original)
> +++ cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cpp Sat May 3 03:39:35 2014
> @@ -212,12 +212,12 @@ bool clang::ExecuteCompilerInvocation(Co
> // This should happen AFTER plugins have been loaded!
> if (!Clang->getFrontendOpts().LLVMArgs.empty()) {
> unsigned NumArgs = Clang->getFrontendOpts().LLVMArgs.size();
> - const char **Args = new const char*[NumArgs + 2];
> + auto Args = llvm::make_unique<const char*[]>(NumArgs + 2);
Would "std::vector<const char*> Args(NumArgs + 2);" be a bit simpler?
(yeah, I know, it has resizability which isn't needed here - and the
only thing it changes about usage is that it's passed as Args rather
than Args.get() to ParseCommandLineOptions below - but at least for me
having a local unique_ptr that's not polymorphic and never passed to
anywhere strikes me as odd)
> Args[0] = "clang (LLVM option parsing)";
> for (unsigned i = 0; i != NumArgs; ++i)
> Args[i + 1] = Clang->getFrontendOpts().LLVMArgs[i].c_str();
> Args[NumArgs + 1] = 0;
> - llvm::cl::ParseCommandLineOptions(NumArgs + 1, Args);
> + llvm::cl::ParseCommandLineOptions(NumArgs + 1, Args.get());
> }
>
> #ifdef CLANG_ENABLE_STATIC_ANALYZER
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list