From 65a7043b1102901880fa6e3173ba2ab34e0cf113 Mon Sep 17 00:00:00 2001 From: "Alan D. Brunelle" Date: Wed, 3 Oct 2007 10:49:42 -0400 Subject: [PATCH] Converted fatal from macro to inline Hopefully this will fix a gcc-4.2.1 warning. Signed-off-by: Alan D. Brunelle --- btreplay/btrecord.c | 23 ++++++++++++++++------- btreplay/btreplay.c | 23 ++++++++++++++++------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/btreplay/btrecord.c b/btreplay/btrecord.c index e02c153..09329f7 100644 --- a/btreplay/btrecord.c +++ b/btreplay/btrecord.c @@ -30,6 +30,7 @@ static char build_date[] = __DATE__ " at "__TIME__; #include #include #include +#include #if !defined(_GNU_SOURCE) # define _GNU_SOURCE @@ -181,13 +182,21 @@ static struct option l_opts[] = { #define ERR_ARGS 1 #define ERR_SYSCALL 2 -#define fatal(errstring, exitval, arg...) \ - do { \ - if (errstring) perror(errstring); \ - fprintf(stderr, ##arg); \ - exit(exitval); \ - /*NOTREACHED*/ \ - } while (0) +static inline void fatal(const char *errstring, const int exitval, + const char *fmt, ...) +{ + va_list ap; + + if (errstring) + perror(errstring); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + exit(exitval); + /*NOTREACHED*/ +} /** * match - Return true if this trace is a proper QUEUE transaction diff --git a/btreplay/btreplay.c b/btreplay/btreplay.c index 48181a4..89881cb 100644 --- a/btreplay/btreplay.c +++ b/btreplay/btreplay.c @@ -37,6 +37,7 @@ static char build_date[] = __DATE__ " at "__TIME__; #include #include #include +#include #if !defined(_GNU_SOURCE) # define _GNU_SOURCE @@ -207,13 +208,21 @@ static char usage_str[]; */ #define ERR_ARGS 1 #define ERR_SYSCALL 2 -#define fatal(errstring, exitval, arg...) \ - do { \ - if (errstring) perror(errstring); \ - fprintf(stderr, ##arg); \ - exit(exitval); \ - /*NOTREACHED*/ \ - } while (0) +static inline void fatal(const char *errstring, const int exitval, + const char *fmt, ...) +{ + va_list ap; + + if (errstring) + perror(errstring); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + exit(exitval); + /*NOTREACHED*/ +} static inline long long unsigned du64_to_sec(__u64 du64) { -- 2.25.1