diff options
Diffstat (limited to 'osdep/compiler.h')
-rw-r--r-- | osdep/compiler.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/osdep/compiler.h b/osdep/compiler.h index 1b878a9b3d..a507cd02c2 100644 --- a/osdep/compiler.h +++ b/osdep/compiler.h @@ -1 +1,27 @@ -#include "compat/compiler.h" +#ifndef MPV_COMPILER_H +#define MPV_COMPILER_H + +#define MP_EXPAND_ARGS(...) __VA_ARGS__ + +#ifdef __GNUC__ + +#define MP_NORETURN __attribute__((noreturn)) + +/** Use gcc attribute to check printf fns. a1 is the 1-based index of + * the parameter containing the format, and a2 the index of the first + * argument. **/ +#ifdef __MINGW32__ +// MinGW maps "printf" to the non-standard MSVCRT functions, even if +// __USE_MINGW_ANSI_STDIO is defined and set to 1. We need to use "gnu_printf", +// which isn't necessarily available on other GCC compatible compilers. +#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (gnu_printf, a1, a2))) +#else +#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (printf, a1, a2))) +#endif + +#else +#define PRINTF_ATTRIBUTE(a1, a2) +#define MP_NORETURN +#endif + +#endif |