Use format(gnu_printf, ...) for windows build with __USE_MINGW_ANSI_STDIO

With __USE_MINGW_ANSI_STDIO mingw compiler uses its own replacement
printf*/scanf* libraries instead of Microsoft's ones which aren't always
C99 compatible.  Declare "archetype" of attribute format to gnu_printf
because the default "printf" in mingw follows MS standard.

One result is that "%z" (a gnu-extension) is accepted w/o warning by
mingw compiler

Change-Id: I3e92f34e2a1e8d664b4f1f55d450f7c2790671f3
This commit is contained in:
Andrew Hsieh 2014-05-09 11:50:45 +08:00
parent 8ec42bb203
commit ad832859a7
1 changed files with 8 additions and 0 deletions

View File

@ -98,7 +98,11 @@ int __android_log_write(int prio, const char *tag, const char *text);
*/
int __android_log_print(int prio, const char *tag, const char *fmt, ...)
#if defined(__GNUC__)
#if __USE_MINGW_ANSI_STDIO
__attribute__ ((format(gnu_printf, 3, 4)))
#else
__attribute__ ((format(printf, 3, 4)))
#endif
#endif
;
@ -117,7 +121,11 @@ void __android_log_assert(const char *cond, const char *tag,
const char *fmt, ...)
#if defined(__GNUC__)
__attribute__ ((noreturn))
#if __USE_MINGW_ANSI_STDIO
__attribute__ ((format(gnu_printf, 3, 4)))
#else
__attribute__ ((format(printf, 3, 4)))
#endif
#endif
;