From a6c4f2646fda50e5661acdb8739d1b54ddb38ede Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 10 Nov 2012 16:19:53 +0100 Subject: mp_common.h: split parts into mp_talloc.h and compiler.h Put MP_EXPAND_ARGS() in compiler.h, even though it's not compiler dependent. Both mp_talloc.h and mp_common.h need it, while mp_common.h includes mp_talloc.h. This is the least annoying solution. --- compat/compiler.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 compat/compiler.h (limited to 'compat') diff --git a/compat/compiler.h b/compat/compiler.h new file mode 100644 index 0000000000..c929573dd1 --- /dev/null +++ b/compat/compiler.h @@ -0,0 +1,24 @@ +#ifndef MPV_COMPILER_H +#define MPV_COMPILER_H + +#define MP_EXPAND_ARGS(...) __VA_ARGS__ + +#ifdef __GNUC__ + +/** 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) +#endif + +#endif -- cgit v1.2.3