diff options
Diffstat (limited to 'osdep')
-rw-r--r-- | osdep/compiler.h | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/osdep/compiler.h b/osdep/compiler.h index 0edea7de4a..d25f0cd1e4 100644 --- a/osdep/compiler.h +++ b/osdep/compiler.h @@ -4,24 +4,18 @@ #define MP_EXPAND_ARGS(...) __VA_ARGS__ #ifdef __GNUC__ - +#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format(printf, a1, a2))) #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. **/ -#if defined(__MINGW32__) && !defined(__clang__) -// 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 +// Broken crap with __USE_MINGW_ANSI_STDIO +#if defined(__MINGW32__) && defined(__GNUC__) && !defined(__clang__) +#undef PRINTF_ATTRIBUTE +#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (gnu_printf, a1, a2))) +#endif + + #endif |