[FFmpeg-devel] [PATCH] avutil/mem_internal: Don't use alignas for MSVC

Zhao Zhili quinkblack at foxmail.com
Mon Dec 2 12:27:16 EET 2024


> On Dec 2, 2024, at 00:53, James Almer <jamrial at gmail.com> wrote:
> 
> On 11/30/2024 6:13 AM, Zhao Zhili wrote:
>> From: Zhao Zhili <zhilizhao at tencent.com>
>> MSVC messed up standard C features, again.
>> ---
>>  libavutil/mem_internal.h | 4 ++++
>>  1 file changed, 4 insertions(+)
>> diff --git a/libavutil/mem_internal.h b/libavutil/mem_internal.h
>> index 249ec3a642..2eb4aef5b0 100644
>> --- a/libavutil/mem_internal.h
>> +++ b/libavutil/mem_internal.h
>> @@ -78,6 +78,10 @@
>>      #define DECLARE_ALIGNED_T(n,t,v)    alignas(FFMIN(n, 16)) t v
>>      #define DECLARE_ASM_ALIGNED(n,t,v)  alignas(FFMIN(n, 16)) t av_used v
>>      #define DECLARE_ASM_CONST(n,t,v)    alignas(FFMIN(n, 16)) static const t av_used v
>> +#elif defined(_MSC_VER)
>> +    #define DECLARE_ALIGNED_T(n,t,v)    __declspec(align(n)) t v
>> +    #define DECLARE_ASM_ALIGNED(n,t,v)  __declspec(align(n)) t v
>> +    #define DECLARE_ASM_CONST(n,t,v)    __declspec(align(n)) static const t v
>>  #else
>>      #define DECLARE_ALIGNED_T(n,t,v)    alignas(n) t v
>>      #define DECLARE_ASM_ALIGNED(n,t,v)  alignas(n) t av_used v
> 
> Ok.

I have tested with different msvc version on godbolt.org <http://godbolt.org/>.

MSVC v19.25 VS16.5 and below doesn’t support alignas.

Since v19.25 VS16.7 the build seems fine. And fate-test on my machine with VS2022 have no problem.

Does anyone get other problems with MSVC alignas support?

> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list