r207899 - [leaks] Don't leak the fake arguments we synthesize for LLVM option

Jordan Rose jordan_rose at apple.com
Tue May 6 09:23:15 PDT 2014


On May 3, 2014, at 6:55 , David Blaikie <dblaikie at gmail.com> wrote:

> (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)

...or SmallVector, since there are usually very few LLVMArgs.

Jordan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140506/f47590ed/attachment.html>


More information about the cfe-commits mailing list