diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-08-15 06:26:57 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-08-16 04:47:47 -0400 |
commit | 83a0944fa919fb2ebcfc1f8933d86e437b597ca6 (patch) | |
tree | 814906744656554a1bc07cdad6b84b3581565358 /tools/perf/util/values.c | |
parent | 6baa0a5ae0954fb2486c480a20556a9f1aee0965 (diff) |
perf: Enable more compiler warnings
Related to a shadowed variable bug fix Valdis Kletnieks noticed
that perf does not get built with -Wshadow, which could have
helped us avoid the bug.
So enable -Wshadow and also enable the following warnings on
perf builds, in addition to the already enabled -Wall -Wextra
-std=gnu99 warnings:
-Wcast-align
-Wformat=2
-Wshadow
-Winit-self
-Wpacked
-Wredundant-decls
-Wstack-protector
-Wstrict-aliasing=3
-Wswitch-default
-Wswitch-enum
-Wno-system-headers
-Wundef
-Wvolatile-register-var
-Wwrite-strings
-Wbad-function-cast
-Wmissing-declarations
-Wmissing-prototypes
-Wnested-externs
-Wold-style-definition
-Wstrict-prototypes
-Wdeclaration-after-statement
And change/fix the perf code to build cleanly under GCC 4.3.2.
The list of warnings enablement is rather arbitrary: it's based
on my (quick) reading of the GCC manpages and trying them on
perf.
I categorized the warnings based on individually enabling them
and looking whether they trigger something in the perf build.
If i liked those warnings (i.e. if they trigger for something
that arguably could be improved) i enabled the warning.
If the warnings seemed to come from language laywers spamming
the build with tons of nuisance warnings i generally kept them
off. Most of the sign conversion related warnings were in
this category. (A second patch enabling some of the sign
warnings might be welcome - sign bugs can be nasty.)
I also kept warnings that seem to make sense from their manpage
description and which produced no actual warnings on our code
base. These warnings might still be turned off if they end up
being a nuisance.
I also left out a few warnings that are not supported in older
compilers.
[ Note that these changes might break the build on older
compilers i did not test, or on non-x86 architectures that
produce different warnings, so more testing would be welcome. ]
Reported-by: Valdis.Kletnieks@vt.edu
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/values.c')
-rw-r--r-- | tools/perf/util/values.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c index 614cfaf4712a..1c15e39f99e3 100644 --- a/tools/perf/util/values.c +++ b/tools/perf/util/values.c | |||
@@ -96,7 +96,7 @@ static void perf_read_values__enlarge_counters(struct perf_read_values *values) | |||
96 | } | 96 | } |
97 | 97 | ||
98 | static int perf_read_values__findnew_counter(struct perf_read_values *values, | 98 | static int perf_read_values__findnew_counter(struct perf_read_values *values, |
99 | u64 rawid, char *name) | 99 | u64 rawid, const char *name) |
100 | { | 100 | { |
101 | int i; | 101 | int i; |
102 | 102 | ||
@@ -116,7 +116,7 @@ static int perf_read_values__findnew_counter(struct perf_read_values *values, | |||
116 | 116 | ||
117 | void perf_read_values_add_value(struct perf_read_values *values, | 117 | void perf_read_values_add_value(struct perf_read_values *values, |
118 | u32 pid, u32 tid, | 118 | u32 pid, u32 tid, |
119 | u64 rawid, char *name, u64 value) | 119 | u64 rawid, const char *name, u64 value) |
120 | { | 120 | { |
121 | int tindex, cindex; | 121 | int tindex, cindex; |
122 | 122 | ||
@@ -221,8 +221,7 @@ static void perf_read_values__display_raw(FILE *fp, | |||
221 | countwidth, values->value[i][j]); | 221 | countwidth, values->value[i][j]); |
222 | } | 222 | } |
223 | 223 | ||
224 | void perf_read_values_display(FILE *fp, struct perf_read_values *values, | 224 | void perf_read_values_display(FILE *fp, struct perf_read_values *values, int raw) |
225 | int raw) | ||
226 | { | 225 | { |
227 | if (raw) | 226 | if (raw) |
228 | perf_read_values__display_raw(fp, values); | 227 | perf_read_values__display_raw(fp, values); |