Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d56f4b2 authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "Add __attribute__((__format__)) to fastboot's die()." am: d1f0687f

am: 07f868c8

Change-Id: I904f70b6b7218f8479e0f450f74c5a26a50516e6
parents f8254114 07f868c8
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -28,27 +28,27 @@ namespace base {
// 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.
#define FORMAT_ARCHETYPE __printf__
#define ANDROID_BASE_FORMAT_ARCHETYPE __printf__
#ifdef __USE_MINGW_ANSI_STDIO
#if __USE_MINGW_ANSI_STDIO
#undef FORMAT_ARCHETYPE
#define FORMAT_ARCHETYPE gnu_printf
#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, ...)
    __attribute__((__format__(FORMAT_ARCHETYPE, 1, 2)));
    __attribute__((__format__(ANDROID_BASE_FORMAT_ARCHETYPE, 1, 2)));

// Appends a printf-like formatting of the arguments to 'dst'.
void StringAppendF(std::string* dst, const char* fmt, ...)
    __attribute__((__format__(FORMAT_ARCHETYPE, 2, 3)));
    __attribute__((__format__(ANDROID_BASE_FORMAT_ARCHETYPE, 2, 3)));

// Appends a printf-like formatting of the arguments to 'dst'.
void StringAppendV(std::string* dst, const char* format, va_list ap)
    __attribute__((__format__(FORMAT_ARCHETYPE, 2, 0)));
    __attribute__((__format__(ANDROID_BASE_FORMAT_ARCHETYPE, 2, 0)));

#undef FORMAT_ARCHETYPE
#undef ANDROID_BASE_FORMAT_ARCHETYPE

}  // namespace base
}  // namespace android
+16 −1
Original line number Diff line number Diff line
@@ -75,7 +75,22 @@ void fb_set_active(const char *slot);
/* util stuff */
double now();
char *mkmsg(const char *fmt, ...);
__attribute__((__noreturn__)) void die(const char *fmt, ...);

// 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.
#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)));
#undef FASTBOOT_FORMAT_ARCHETYPE

/* Current product */
extern char cur_product[FB_RESPONSE_SZ + 1];