Le 15 novembre 2024 12:56:23 GMT+02:00, Zhao Zhili <quinkbl...@foxmail.com> a 
écrit :
>From: Zhao Zhili <zhiliz...@tencent.com>
>
>_Alignas is portable than compiler's specific __attribute__. It do
>have a limitation, that _Alignas don't support specify aligment on
>the declarations of struct (it works for specify alignment on struct
>fields),
> which only used by avcodec/cavs, and is removed now.

IIRC, _Alignas() is deprecated by C23. Can't we use the proper c11/c23 
alignas() instead?

>---
> libavutil/mem_internal.h | 26 +++++++-------------------
> 1 file changed, 7 insertions(+), 19 deletions(-)
>
>diff --git a/libavutil/mem_internal.h b/libavutil/mem_internal.h
>index 20f9b3e3f2..b77157bfa0 100644
>--- a/libavutil/mem_internal.h
>+++ b/libavutil/mem_internal.h
>@@ -73,26 +73,14 @@
>  * @param v Name of the variable
>  */
> 
>-#if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || 
>defined(__SUNPRO_C)
>-    #define DECLARE_ALIGNED_T(n,t,v)    t __attribute__ ((aligned (n))) v
>-    #define DECLARE_ASM_ALIGNED(n,t,v)  t __attribute__ ((aligned (n))) v
>-    #define DECLARE_ASM_CONST(n,t,v)    const t __attribute__ ((aligned (n))) 
>v
>-#elif defined(__DJGPP__)
>-    #define DECLARE_ALIGNED_T(n,t,v)    t __attribute__ ((aligned (FFMIN(n, 
>16)))) v
>-    #define DECLARE_ASM_ALIGNED(n,t,v)  t av_used __attribute__ ((aligned 
>(FFMIN(n, 16)))) v
>-    #define DECLARE_ASM_CONST(n,t,v)    static const t av_used __attribute__ 
>((aligned (FFMIN(n, 16)))) v
>-#elif defined(__GNUC__) || defined(__clang__)
>-    #define DECLARE_ALIGNED_T(n,t,v)    t __attribute__ ((aligned (n))) v
>-    #define DECLARE_ASM_ALIGNED(n,t,v)  t av_used __attribute__ ((aligned 
>(n))) v
>-    #define DECLARE_ASM_CONST(n,t,v)    static const t av_used __attribute__ 
>((aligned (n))) 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
>+#if defined(__DJGPP__)
>+    #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
> #else
>-    #define DECLARE_ALIGNED_T(n,t,v)    t v
>-    #define DECLARE_ASM_ALIGNED(n,t,v)  t v
>-    #define DECLARE_ASM_CONST(n,t,v)    static const t v
>+    #define DECLARE_ALIGNED_T(n,t,v)    _Alignas(n) t v
>+    #define DECLARE_ASM_ALIGNED(n,t,v)  _Alignas(n) t av_used v
>+    #define DECLARE_ASM_CONST(n,t,v)    _Alignas(n) static const t av_used v
> #endif
> 
> #if HAVE_SIMD_ALIGN_64
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to