[PATCH gcc/fortran] get rid of gfc_free

Jim Meyering jim@meyering.net
Tue Mar 15 10:27:00 GMT 2011


Jakub Jelinek wrote:
> On Tue, Mar 15, 2011 at 11:02:38AM +0100, Jim Meyering wrote:
>> > Instead of "please let us know", maybe recommend using
>> > __builtin_expect instead? E.g. something like
>> >
>> > if (__builtin_expect (ptr != NULL, 0))
>> >     free (ptr);
>>
>> Good idea.  Thanks.
>> Though how about avoiding the double negative?
>>
>>    if (__builtin_expect (ptr == NULL, 1))
>>      free (ptr);
>
> What double negative?  if (__builtin_expect (ptr != NULL, 0)) free (ptr);
> is certainly correct, the latter is wrong, it will leak memory.
> It will call free only if ptr is NULL, i.e. do a useless free (NULL),
> if it is non-NULL, it will not do anything.
> You could do
>   if (!__builtin_expect (ptr == NULL, 1))
>     free (ptr);
> but that doesn't seem to be nicer or clearer than
>   if (__builtin_expect (ptr != NULL, 0))
>     free (ptr);

Thanks for the quick correction.
I've fixed it locally, too.



More information about the Gcc-patches mailing list