summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
8d35dae)
Clang is a bit more strict wrt format-nonliterals:
http://clang.llvm.org/docs/LanguageExtensions.html#format-string-checking
Adding these extra printf attributes also makes gcc able to find more
problems. E.g. this patch uncovers a format issue in udev-builtin-path_id.c
Some parts looked intetional about breaking the format-nonliteral check.
I added some supression for warnings there.
13 files changed:
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
static void job_print_status_message(Unit *u, JobType t, JobResult result) {
const char *format;
static void job_print_status_message(Unit *u, JobType t, JobResult result) {
const char *format;
unit_status_printf(u, ANSI_HIGHLIGHT_ON " INFO " ANSI_HIGHLIGHT_OFF, "%s is not active.");
}
}
unit_status_printf(u, ANSI_HIGHLIGHT_ON " INFO " ANSI_HIGHLIGHT_OFF, "%s is not active.");
}
}
+#pragma GCC diagnostic pop
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
static void unit_status_print_starting_stopping(Unit *u, JobType t) {
const char *format;
static void unit_status_print_starting_stopping(Unit *u, JobType t) {
const char *format;
unit_status_printf(u, "", format);
}
unit_status_printf(u, "", format);
}
+#pragma GCC diagnostic pop
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
#define respond_oom(connection) log_oom(), respond_oom_internal(connection)
#define respond_oom(connection) log_oom(), respond_oom_internal(connection)
static int respond_error(
struct MHD_Connection *connection,
unsigned code,
static int respond_error(
struct MHD_Connection *connection,
unsigned code,
#include "macro.h"
#include "util.h"
#include "macro.h"
#include "util.h"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+_printf_(2,0)
void microhttpd_logger(void *arg, const char *fmt, va_list ap) {
_cleanup_free_ char *f;
if (asprintf(&f, "microhttpd: %s", fmt) <= 0) {
void microhttpd_logger(void *arg, const char *fmt, va_list ap) {
_cleanup_free_ char *f;
if (asprintf(&f, "microhttpd: %s", fmt) <= 0) {
}
log_metav(LOG_INFO, NULL, 0, NULL, f, ap);
}
}
log_metav(LOG_INFO, NULL, 0, NULL, f, ap);
}
+#pragma GCC diagnostic pop
return -bus_error_name_to_errno(name);
}
return -bus_error_name_to_errno(name);
}
int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_list ap) {
if (!name)
int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_list ap) {
if (!name)
int bus_error_set_errnofv(sd_bus_error *e, int error, const char *format, va_list ap) {
int r;
int bus_error_set_errnofv(sd_bus_error *e, int error, const char *format, va_list ap) {
int r;
static void log_stderr(struct udev *udev,
int priority, const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_stderr(struct udev *udev,
int priority, const char *file, int line, const char *fn,
const char *format, va_list args)
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
static void log_fn(struct udev *udev,
int priority, const char *file, int line, const char *fn,
const char *format, va_list args) {
static void log_fn(struct udev *udev,
int priority, const char *file, int line, const char *fn,
const char *format, va_list args) {
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static char revision_str[16];
static char type_str[16];
static char revision_str[16];
static char type_str[16];
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void log_fn(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args)
static void udev_kmod_log(void *data, int priority, const char *file, int line,
const char *fn, const char *format, va_list args)
{
static void udev_kmod_log(void *data, int priority, const char *file, int line,
const char *fn, const char *format, va_list args)
{
static int path_prepend(char **path, const char *fmt, ...)
{
va_list va;
static int path_prepend(char **path, const char *fmt, ...)
{
va_list va;