mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-29 22:00:58 +02:00
dsputil: workaround __VA_ARGS__ missing tokenization for MSVC
A second expansion forces the preprocessor to tokenize properly. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
b797f3c4d0
commit
0db2d94280
@ -622,22 +622,26 @@ void ff_mlp_init_x86(DSPContext* c, AVCodecContext *avctx);
|
||||
# define STRIDE_ALIGN 8
|
||||
#endif
|
||||
|
||||
// Some broken preprocessors need a second expansion
|
||||
// to be forced to tokenize __VA_ARGS__
|
||||
#define E(x) x
|
||||
|
||||
#define LOCAL_ALIGNED_A(a, t, v, s, o, ...) \
|
||||
uint8_t la_##v[sizeof(t s o) + (a)]; \
|
||||
t (*v) o = (void *)FFALIGN((uintptr_t)la_##v, a)
|
||||
|
||||
#define LOCAL_ALIGNED_D(a, t, v, s, o, ...) DECLARE_ALIGNED(a, t, v) s o
|
||||
|
||||
#define LOCAL_ALIGNED(a, t, v, ...) LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)
|
||||
#define LOCAL_ALIGNED(a, t, v, ...) E(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,))
|
||||
|
||||
#if HAVE_LOCAL_ALIGNED_8
|
||||
# define LOCAL_ALIGNED_8(t, v, ...) LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,)
|
||||
# define LOCAL_ALIGNED_8(t, v, ...) E(LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,))
|
||||
#else
|
||||
# define LOCAL_ALIGNED_8(t, v, ...) LOCAL_ALIGNED(8, t, v, __VA_ARGS__)
|
||||
#endif
|
||||
|
||||
#if HAVE_LOCAL_ALIGNED_16
|
||||
# define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)
|
||||
# define LOCAL_ALIGNED_16(t, v, ...) E(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,))
|
||||
#else
|
||||
# define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__)
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user