diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-06-16 10:57:54 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-06-19 14:27:05 -0400 |
commit | 3ee350fb8a2b30fe47dd9e3b299dff0178fc8c88 (patch) | |
tree | 8d7f8bf9243207e0c400b124dd4b230cb44f9436 | |
parent | afaed6d3e4aa56e939b496aafa5c97852e223122 (diff) |
tools: Adopt __scanf from kernel sources
To have a more compact way to ask the compiler to perform scanf like
argument validation.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-yzqrhfjrn26lqqtwf55egg0h@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/include/linux/compiler-gcc.h | 1 | ||||
-rw-r--r-- | tools/perf/util/pmu.h | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/tools/include/linux/compiler-gcc.h b/tools/include/linux/compiler-gcc.h index f531b258ff94..2846094aad4d 100644 --- a/tools/include/linux/compiler-gcc.h +++ b/tools/include/linux/compiler-gcc.h | |||
@@ -23,3 +23,4 @@ | |||
23 | #define __noreturn __attribute__((noreturn)) | 23 | #define __noreturn __attribute__((noreturn)) |
24 | 24 | ||
25 | #define __printf(a, b) __attribute__((format(printf, a, b))) | 25 | #define __printf(a, b) __attribute__((format(printf, a, b))) |
26 | #define __scanf(a, b) __attribute__((format(scanf, a, b))) | ||
diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h index ea7f450dc609..389e9729331f 100644 --- a/tools/perf/util/pmu.h +++ b/tools/perf/util/pmu.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __PMU_H | 2 | #define __PMU_H |
3 | 3 | ||
4 | #include <linux/bitmap.h> | 4 | #include <linux/bitmap.h> |
5 | #include <linux/compiler.h> | ||
5 | #include <linux/perf_event.h> | 6 | #include <linux/perf_event.h> |
6 | #include <stdbool.h> | 7 | #include <stdbool.h> |
7 | #include "evsel.h" | 8 | #include "evsel.h" |
@@ -83,8 +84,7 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet, | |||
83 | bool long_desc, bool details_flag); | 84 | bool long_desc, bool details_flag); |
84 | bool pmu_have_event(const char *pname, const char *name); | 85 | bool pmu_have_event(const char *pname, const char *name); |
85 | 86 | ||
86 | int perf_pmu__scan_file(struct perf_pmu *pmu, const char *name, const char *fmt, | 87 | int perf_pmu__scan_file(struct perf_pmu *pmu, const char *name, const char *fmt, ...) __scanf(3, 4); |
87 | ...) __attribute__((format(scanf, 3, 4))); | ||
88 | 88 | ||
89 | int perf_pmu__test(void); | 89 | int perf_pmu__test(void); |
90 | 90 | ||