tools: bpftool: fix -Wmissing declaration warnings
authorQuentin Monnet <quentin.monnet@netronome.com>
Fri, 14 Dec 2018 13:56:01 +0000 (13:56 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Sat, 15 Dec 2018 00:31:49 +0000 (01:31 +0100)
Help compiler check arguments for several utility functions used to
print items to the console by adding the "printf" attribute when
declaring those functions.

Also, declare as "static" two functions that are only used in prog.c.

All of them discovered by compiling bpftool with
-Wmissing-format-attribute -Wmissing-declarations.

Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/bpf/bpftool/common.c
tools/bpf/bpftool/json_writer.c
tools/bpf/bpftool/prog.c
tools/bpf/bpftool/xlated_dumper.c

index 99e4027dde75c2b8cb3164362f2e3f2bd7d2175f..24582e8a96fb8edbbcb1962e4141c0d45d37a7cd 100644 (file)
@@ -28,7 +28,7 @@
 #define BPF_FS_MAGIC           0xcafe4a11
 #endif
 
-void p_err(const char *fmt, ...)
+void __printf(1, 2) p_err(const char *fmt, ...)
 {
        va_list ap;
 
@@ -46,7 +46,7 @@ void p_err(const char *fmt, ...)
        va_end(ap);
 }
 
-void p_info(const char *fmt, ...)
+void __printf(1, 2) p_info(const char *fmt, ...)
 {
        va_list ap;
 
index a07d17918725a7e17eae9c727fbdc8b1b9cb9b12..bff7ee026680481a1f5d33464cf4fad52f3c38cd 100644 (file)
@@ -20,6 +20,7 @@
 #include <malloc.h>
 #include <inttypes.h>
 #include <stdint.h>
+#include <linux/compiler.h>
 
 #include "json_writer.h"
 
@@ -157,7 +158,8 @@ void jsonw_name(json_writer_t *self, const char *name)
                putc(' ', self->out);
 }
 
-void jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap)
+void __printf(2, 0)
+jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap)
 {
        jsonw_eor(self);
        putc('"', self->out);
@@ -165,7 +167,7 @@ void jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap)
        putc('"', self->out);
 }
 
-void jsonw_printf(json_writer_t *self, const char *fmt, ...)
+void __printf(2, 3) jsonw_printf(json_writer_t *self, const char *fmt, ...)
 {
        va_list ap;
 
index ee51279be9c7efb45d086c314864b4ab3857974c..2d1bb7d6ff5113c0014855b18e0adc4cd44472fa 100644 (file)
@@ -32,7 +32,7 @@ static const char * const attach_type_strings[] = {
        [__MAX_BPF_ATTACH_TYPE] = NULL,
 };
 
-enum bpf_attach_type parse_attach_type(const char *str)
+static enum bpf_attach_type parse_attach_type(const char *str)
 {
        enum bpf_attach_type type;
 
@@ -798,7 +798,7 @@ struct map_replace {
        char *name;
 };
 
-int map_replace_compar(const void *p1, const void *p2)
+static int map_replace_compar(const void *p1, const void *p2)
 {
        const struct map_replace *a = p1, *b = p2;
 
index 640ffe86a655335b06343d34d7e5e0246aa50f4c..7073dbe1ff27eee87201ead853228d7be1b12028 100644 (file)
@@ -81,7 +81,7 @@ struct kernel_sym *kernel_syms_search(struct dump_data *dd,
                       sizeof(*dd->sym_mapping), kernel_syms_cmp) : NULL;
 }
 
-static void print_insn(void *private_data, const char *fmt, ...)
+static void __printf(2, 3) print_insn(void *private_data, const char *fmt, ...)
 {
        va_list args;
 
@@ -90,7 +90,7 @@ static void print_insn(void *private_data, const char *fmt, ...)
        va_end(args);
 }
 
-static void
+static void __printf(2, 3)
 print_insn_for_graph(void *private_data, const char *fmt, ...)
 {
        char buf[64], *p;
@@ -121,7 +121,8 @@ print_insn_for_graph(void *private_data, const char *fmt, ...)
        printf("%s", buf);
 }
 
-static void print_insn_json(void *private_data, const char *fmt, ...)
+static void __printf(2, 3)
+print_insn_json(void *private_data, const char *fmt, ...)
 {
        unsigned int l = strlen(fmt);
        char chomped_fmt[l];