diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2018-06-25 11:48:58 -0700 |
---|---|---|
committer | Pirama Arumuga Nainar <pirama@google.com> | 2018-06-25 11:52:54 -0700 |
commit | a2df1ef4413144fe7d09a22f4750df05e83c13fb (patch) | |
tree | 703bdbfdcb8acbe75e5dfb13f492030fa72eb322 | |
parent | 8e52362e45c7d14d30c158e3c5f05e53e499bea4 (diff) |
Do not customize __format__ for Windows/MinGW to gnu_printf
Bug: http://b/69933090
Bug: http://b/69933068
MinGW uses gnu_printf to force C99 printf analysis with GCC, but clang
does not support gnu_printf. So just use the default that's used for
other platforms. This also mirrors upstream commit
https://sourceforge.net/p/mingw-w64/mingw-w64/ci/015e637b4b24d9915162ab877ed539ad0e657951/.
Test: m native-host-cross with Clang.
Change-Id: I3deb266d70e25296c4ae1d58637afbabc3d949c1
-rw-r--r-- | adb/sysdeps.h | 10 | ||||
-rw-r--r-- | base/include/android-base/stringprintf.h | 11 | ||||
-rw-r--r-- | fastboot/fastboot.h | 11 | ||||
-rw-r--r-- | liblog/include/android/log.h | 24 |
4 files changed, 3 insertions, 53 deletions
diff --git a/adb/sysdeps.h b/adb/sysdeps.h index 3be99f6351..fe0ecd6ea6 100644 --- a/adb/sysdeps.h +++ b/adb/sysdeps.h @@ -41,16 +41,8 @@ // Some printf-like functions are implemented in terms of // android::base::StringAppendV, so they should use the same attribute for -// compile-time format string checking. On Windows, if the mingw version of -// vsnprintf is used in StringAppendV, use `gnu_printf' which allows z in %zd -// and PRIu64 (and related) to be recognized by the compile-time checking. +// compile-time format string checking. #define ADB_FORMAT_ARCHETYPE __printf__ -#ifdef __USE_MINGW_ANSI_STDIO -#if __USE_MINGW_ANSI_STDIO -#undef ADB_FORMAT_ARCHETYPE -#define ADB_FORMAT_ARCHETYPE gnu_printf -#endif -#endif #ifdef _WIN32 diff --git a/base/include/android-base/stringprintf.h b/base/include/android-base/stringprintf.h index 1fd6297fde..517e69e179 100644 --- a/base/include/android-base/stringprintf.h +++ b/base/include/android-base/stringprintf.h @@ -24,17 +24,8 @@ namespace android { namespace base { // These printf-like functions are implemented in terms of vsnprintf, so they -// use the same attribute for compile-time format string checking. On Windows, -// if the mingw version of vsnprintf is used, use `gnu_printf' which allows z -// in %zd and PRIu64 (and related) to be recognized by the compile-time -// checking. +// use the same attribute for compile-time format string checking. #define ANDROID_BASE_FORMAT_ARCHETYPE __printf__ -#ifdef __USE_MINGW_ANSI_STDIO -#if __USE_MINGW_ANSI_STDIO -#undef ANDROID_BASE_FORMAT_ARCHETYPE -#define ANDROID_BASE_FORMAT_ARCHETYPE gnu_printf -#endif -#endif // Returns a string corresponding to printf-like formatting of the arguments. std::string StringPrintf(const char* fmt, ...) diff --git a/fastboot/fastboot.h b/fastboot/fastboot.h index 2935eb57c7..dc822e8bff 100644 --- a/fastboot/fastboot.h +++ b/fastboot/fastboot.h @@ -78,17 +78,8 @@ char* xstrdup(const char*); void set_verbose(); // These printf-like functions are implemented in terms of vsnprintf, so they -// use the same attribute for compile-time format string checking. On Windows, -// if the mingw version of vsnprintf is used, use `gnu_printf' which allows z -// in %zd and PRIu64 (and related) to be recognized by the compile-time -// checking. +// use the same attribute for compile-time format string checking. #define FASTBOOT_FORMAT_ARCHETYPE __printf__ -#ifdef __USE_MINGW_ANSI_STDIO -#if __USE_MINGW_ANSI_STDIO -#undef FASTBOOT_FORMAT_ARCHETYPE -#define FASTBOOT_FORMAT_ARCHETYPE gnu_printf -#endif -#endif void die(const char* fmt, ...) __attribute__((__noreturn__)) __attribute__((__format__(FASTBOOT_FORMAT_ARCHETYPE, 1, 2))); void verbose(const char* fmt, ...) __attribute__((__format__(FASTBOOT_FORMAT_ARCHETYPE, 1, 2))); diff --git a/liblog/include/android/log.h b/liblog/include/android/log.h index 52cbe8b717..ee9220d4ad 100644 --- a/liblog/include/android/log.h +++ b/liblog/include/android/log.h @@ -115,16 +115,8 @@ 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__) -#ifdef __USE_MINGW_ANSI_STDIO -#if __USE_MINGW_ANSI_STDIO - __attribute__((__format__(gnu_printf, 3, 4))) -#else __attribute__((__format__(printf, 3, 4))) #endif -#else - __attribute__((__format__(printf, 3, 4))) -#endif -#endif ; /** @@ -133,16 +125,8 @@ int __android_log_print(int prio, const char* tag, const char* fmt, ...) */ int __android_log_vprint(int prio, const char* tag, const char* fmt, va_list ap) #if defined(__GNUC__) -#ifdef __USE_MINGW_ANSI_STDIO -#if __USE_MINGW_ANSI_STDIO - __attribute__((__format__(gnu_printf, 3, 0))) -#else - __attribute__((__format__(printf, 3, 0))) -#endif -#else __attribute__((__format__(printf, 3, 0))) #endif -#endif ; /** @@ -164,16 +148,8 @@ void __android_log_assert(const char* cond, const char* tag, const char* fmt, ...) #if defined(__GNUC__) __attribute__((__noreturn__)) -#ifdef __USE_MINGW_ANSI_STDIO -#if __USE_MINGW_ANSI_STDIO - __attribute__((__format__(gnu_printf, 3, 4))) -#else - __attribute__((__format__(printf, 3, 4))) -#endif -#else __attribute__((__format__(printf, 3, 4))) #endif -#endif ; #ifndef log_id_t_defined |