[FFmpeg-devel] [PATCH] avutil/mem: Fix invalid use of av_alloc_size

Mark Harris mark.hsj at gmail.com
Mon Nov 26 03:55:37 EET 2018


On 2018-11-25 17:29, James Almer wrote:
> On 11/25/2018 10:01 PM, Michael Niedermayer wrote:
>> On Sat, Nov 24, 2018 at 01:02:02PM -0800, Mark Harris wrote:
>>> The alloc_size attribute is valid only on functions that return a
>>> pointer.  GCC 9 (not yet released) warns about invalid usage:
>>>
>>> ./libavutil/mem.h:342:1: warning: 'alloc_size' attribute ignored on a function returning int' [-Wattributes]
>>>   342 | av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
>>>       | ^~~~~~~~~~~~~
>>
>> Is the attribute also useless on all other compilers ?
> 
> The attribute is only used when __GNUC__ is defined, so it should for
> any such compiler (GCC and Clang).
> 
> https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
> 

The Clang documentation does note a minor difference from GCC, but both
GCC and Clang agree that it applies to functions that return a pointer.
 The size is the number of bytes allocated at that pointer.  It doesn't
support an indirect reference to the allocated memory; if it did it
would likely need an additional parameter to indicate which argument was
the indirect reference.

https://clang.llvm.org/docs/AttributeReference.html#alloc-size

 - Mark


More information about the ffmpeg-devel mailing list