[PATCH 3/6] Fix memory leaks in IPA devirt

Martin Liška mliska@suse.cz
Thu Nov 26 21:04:00 GMT 2015


On 11/23/2015 11:29 PM, Trevor Saunders wrote:
> On Mon, Nov 23, 2015 at 02:48:37PM +0100, marxin wrote:
>> gcc/ChangeLog:
>>
>> 2015-11-20  Martin Liska  <mliska@suse.cz>
>>
>> 	* ipa-devirt.c (ipa_devirt): Use auto_vec instead
>> 	of a local-scope vec. Release final_warning_records.
>> ---
>>   gcc/ipa-devirt.c | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
>> index e74f853..6003c92 100644
>> --- a/gcc/ipa-devirt.c
>> +++ b/gcc/ipa-devirt.c
>> @@ -3837,7 +3837,7 @@ ipa_devirt (void)
>>
>>         if (warn_suggest_final_methods)
>>   	{
>> -	  vec<const decl_warn_count*> decl_warnings_vec = vNULL;
>> +	  auto_vec<const decl_warn_count*> decl_warnings_vec;
>>
>>   	  final_warning_records->decl_warnings.traverse
>>   	    <vec<const decl_warn_count *> *, add_decl_warning> (&decl_warnings_vec);
>> @@ -3887,7 +3887,8 @@ ipa_devirt (void)
>>   			      decl, count, dyn_count);
>>   	    }
>>   	}
>> -	
>> +
>> +      final_warning_records->type_warnings.release ();
>>         delete (final_warning_records);
>
> 	You should be able to just make
> 	final_warning_record::type_warnings an auto_vec right? that
> 	seems less error prone, though this is certainly fine for now.
>
> 	Trev
>
>>         final_warning_records = 0;
>>       }
>> --
>> 2.6.3
>>
>>

Hi.

There's v2 of the patch that reflects ideas suggested by Trevor.

Ready to be installed?
Thanks,
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Fix-memory-leaks-in-IPA-devirt.patch
Type: text/x-patch
Size: 1771 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20151126/af871af8/attachment.bin>


More information about the Gcc-patches mailing list