[FFmpeg-devel] [PATCH] avutil/mem_internal: Don't use alignas for MSVC
Hendrik Leppkes
h.leppkes at gmail.com
Mon Dec 2 14:11:13 EET 2024
On Mon, Dec 2, 2024 at 11:28 AM Zhao Zhili
<quinkblack-at-foxmail.com at ffmpeg.org> wrote:
>
>
> > 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?
>
Current master doesn't pass fate on the latest VS2022 for me right here.
I've been trying to look into whats going on, but haven't had the
time, so please push this in the meantime.
- Hendrik
More information about the ffmpeg-devel
mailing list