diff --git a/adb/adb.h b/adb/adb.h index 9020fc3a3..59644d43e 100644 --- a/adb/adb.h +++ b/adb/adb.h @@ -142,10 +142,10 @@ struct alistener void print_packet(const char *label, apacket *p); - - -void fatal(const char *fmt, ...) __attribute__((noreturn)); -void fatal_errno(const char *fmt, ...) __attribute__((noreturn)); +// These use the system (v)fprintf, not the adb prefixed ones defined in sysdeps.h, so they +// shouldn't be tagged with ADB_FORMAT_ARCHETYPE. +void fatal(const char* fmt, ...) __attribute__((noreturn, format(__printf__, 1, 2))); +void fatal_errno(const char* fmt, ...) __attribute__((noreturn, format(__printf__, 1, 2))); void handle_packet(apacket *p, atransport *t); diff --git a/adb/sysdeps_win32.cpp b/adb/sysdeps_win32.cpp index 0a2a8f690..c3889b686 100644 --- a/adb/sysdeps_win32.cpp +++ b/adb/sysdeps_win32.cpp @@ -88,7 +88,10 @@ static const FHClassRec _fh_socket_class = { _fh_socket_hook }; -#define assert(cond) do { if (!(cond)) fatal( "assertion failed '%s' on %s:%ld\n", #cond, __FILE__, __LINE__ ); } while (0) +#define assert(cond) \ + do { \ + if (!(cond)) fatal("assertion failed '%s' on %s:%d\n", #cond, __FILE__, __LINE__); \ + } while (0) std::string SystemErrorCodeToString(const DWORD error_code) { const int kErrorMessageBufferSize = 256; @@ -1589,7 +1592,7 @@ int adb_socketpair(int sv[2]) { /**************************************************************************/ /**************************************************************************/ -#define FATAL(x...) fatal(__FUNCTION__, x) +#define FATAL(fmt, ...) fatal("%s: " fmt, __FUNCTION__, ##__VA_ARGS__) #if DEBUG static void dump_fde(fdevent *fde, const char *info)