diff options
author | wm4 <wm4@nowhere> | 2012-11-10 16:19:53 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-11-12 20:08:57 +0100 |
commit | a6c4f2646fda50e5661acdb8739d1b54ddb38ede (patch) | |
tree | 3d234fd8a5291baed09efc85c9843283371cce06 /compat | |
parent | 20e9d06a2fef17a80369fd6c0b911e60c243172d (diff) |
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.
Diffstat (limited to 'compat')
-rw-r--r-- | compat/compiler.h | 24 |
1 files changed, 24 insertions, 0 deletions
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 |