-/* $OpenBSD: log.c,v 1.28 2021/08/25 07:09:30 nicm Exp $ */
+/* $OpenBSD: log.c,v 1.29 2021/09/10 14:22:24 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
va_start(ap, msg);
if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1)
exit(1);
- log_vwrite(fmt, ap);
+ no_format_nonliteral(log_vwrite(fmt, ap));
va_end(ap);
exit(1);
}
va_start(ap, msg);
if (asprintf(&fmt, "fatal: %s", msg) == -1)
exit(1);
- log_vwrite(fmt, ap);
+ no_format_nonliteral(log_vwrite(fmt, ap));
va_end(ap);
exit(1);
}
-/* $OpenBSD: tmux.h,v 1.1140 2021/09/09 13:38:32 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.1141 2021/09/10 14:22:24 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
#define DEFAULT_XPIXEL 16
#define DEFAULT_YPIXEL 32
+/* Don't complain about format arguments. */
+#if __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+#define no_format_nonliteral(x) do { \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wformat-nonliteral\"") \
+ x; \
+ _Pragma ("GCC diagnostic pop") \
+} while (0)
+#else
+#define no_format_nonliteral(x) do { \
+ x; \
+} while (0)
+#endif
+
/* Attribute to make GCC check printf-like arguments. */
#define printflike(a, b) __attribute__ ((format (printf, a, b)))