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 fb77b99..ac59349 100644
--- a/defs.h
+++ b/defs.h
@@ -554,7 +554,8 @@
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 1f2c835..c06d3c1 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