[FFmpeg-devel] [PATCH 2/2] avformat/internal: add missing __clang__ check

Martin Storsjö martin at martin.st
Thu Jun 12 12:52:11 EEST 2025


On Mon, 31 Mar 2025, Kacper Michajłow wrote:

> Clang x86_64-pc-windows-msvc doesn't define __GNUC__.
>
> Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
> ---
> libavformat/internal.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/internal.h b/libavformat/internal.h
> index fe428d85eb..bf83571430 100644
> --- a/libavformat/internal.h
> +++ b/libavformat/internal.h
> @@ -354,7 +354,7 @@ static av_always_inline const FFStream *cffstream(const AVStream *st)
>     return (const FFStream*)st;
> }
> 
> -#ifdef __GNUC__
> +#if defined (__GNUC__) || defined (__clang__)
> #define dynarray_add(tab, nb_ptr, elem)\
> do {\
>     __typeof__(tab) _tab = (tab);\
> -- 
> 2.45.1

This patch also looks good, so I'll push it.

But as with the other one as I asked yesterday, it would be good to 
describe the status quo and what the change gains. In this case I presume 
that it gains the type checking abilities of the GCC compatible version of 
dynarray_add?

Also, regarding these patchs for clang in msvc mode; when testing things I 
ran into another build failure, which is fixed by 
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20250612093933.395475-1-martin@martin.st/. 
I wonder if you haven't run into this as well, or why it isn't happening 
for you?

(With that fixed, I'll try to set up fate instances with this build mode; 
I already have such for Clang in MSVC mode targeting arm/aarch64, but no 
for x86/x86_64 yet.)

// Martin


More information about the ffmpeg-devel mailing list