From: Dmitry V. Levin Date: Fri, 1 Apr 2016 00:52:01 +0000 (+0000) Subject: Add sentinel attribute to printxvals X-Git-Tag: v4.12~467 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b0d23cc2c0e2d9d4dea253ce04955ac6c78ce49e;p=strace Add sentinel attribute to printxvals * gcc_compat.h (ATTRIBUTE_SENTINEL): New macro. * defs.h (printxvals): Add ATTRIBUTE_SENTINEL. --- diff --git a/defs.h b/defs.h index fb77b99c..ac59349f 100644 --- a/defs.h +++ b/defs.h @@ -554,7 +554,8 @@ extern int printllval(struct tcb *, const char *, int) ATTRIBUTE_FORMAT((printf, 2, 0)); extern void printaddr(long); -extern void printxvals(const unsigned int, const char *, const struct xlat *, ...); +extern void printxvals(const unsigned int, const char *, const struct xlat *, ...) + ATTRIBUTE_SENTINEL; #define printxval(xlat, val, dflt) printxvals(val, dflt, xlat, NULL) extern int printargs(struct tcb *); extern int printargs_u(struct tcb *); diff --git a/gcc_compat.h b/gcc_compat.h index 1f2c8354..c06d3c1d 100644 --- a/gcc_compat.h +++ b/gcc_compat.h @@ -64,6 +64,12 @@ # define ATTRIBUTE_NOINLINE /* empty */ #endif +#if GNUC_PREREQ(4, 0) +# define ATTRIBUTE_SENTINEL __attribute__((__sentinel__)) +#else +# define ATTRIBUTE_SENTINEL /* empty */ +#endif + #if GNUC_PREREQ(4, 3) # define ATTRIBUTE_ALLOC_SIZE(args) __attribute__((__alloc_size__ args)) #else