From fb548e77e7a5cef453f1ebd866e587d23f6d98b1 Mon Sep 17 00:00:00 2001 From: Ben Kaduk Date: Wed, 8 May 2013 12:50:27 -0400 Subject: [PATCH] Make UKERNEL's panic() a real function, not a macro In particular, a varargs function, so that osi_Panic() can always call panic() as varargs. Change-Id: I2ceee737c0025c146a8cd17b16d6c159e2bbf9d0 Reviewed-on: http://gerrit.openafs.org/9877 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear --- src/afs/UKERNEL/sysincludes.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/afs/UKERNEL/sysincludes.h b/src/afs/UKERNEL/sysincludes.h index b94eea5df..e4019561f 100644 --- a/src/afs/UKERNEL/sysincludes.h +++ b/src/afs/UKERNEL/sysincludes.h @@ -836,7 +836,15 @@ enum usr_uio_rw { USR_UIO_READ, USR_UIO_WRITE }; #endif #define NBPG 4096 -#define panic(S) do{fprintf(stderr, "%s", S);assert(0);}while(0) +static_inline void panic(const char *format, ...) AFS_NORETURN; +static_inline void panic(const char *format, ...) +{ + va_list ap; + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + assert(0); +}; #define abort() assert(0) #define usr_assert(A) assert(A) -- 2.39.5