linux/tools/perf/util
Ingo Molnar 83a0944fa9 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>
2009-08-16 10:47:47 +02:00
..
include perf report: Adjust column width to the values sampled 2009-07-11 10:24:11 +02:00
abspath.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
alias.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
cache.h perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
callchain.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
callchain.h perf tools: Factorize the map helpers 2009-08-12 12:37:37 +02:00
color.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
color.h perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
config.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
ctype.c perf_counter tools: Add and use isprint() 2009-06-18 09:46:00 +02:00
debug.c perf tools: Factorize high level dso helpers 2009-08-12 12:02:38 +02:00
debug.h perf tools: Factorize high level dso helpers 2009-08-12 12:02:38 +02:00
environment.c perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
event.h perf tools: Add some comments to the event definitions 2009-08-15 12:00:09 +02:00
exec_cmd.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
exec_cmd.h perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
generate-cmdlist.sh perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
header.c perf util: Fix do_read() to fail on EOF instead of busy-looping 2009-08-09 12:54:39 +02:00
header.h perf: avoid structure size confusion by using a fixed size 2009-07-22 18:05:57 +02:00
help.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
help.h perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
levenshtein.c perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
levenshtein.h perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
map.c perf tools: Factorize the map helpers 2009-08-12 12:37:37 +02:00
module.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
module.h perf_counter tools: Add infrastructure to support loading of kernel module symbols 2009-07-02 08:42:20 +02:00
pager.c perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
parse-events.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
parse-events.h perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
parse-options.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
parse-options.h perf_counter tools: Add new OPT_CALLBACK_DEFAULT option 2009-07-02 20:47:14 +02:00
path.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
PERF-VERSION-GEN perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
quote.c perf: Fix read buffer overflow 2009-08-04 11:09:56 +02:00
quote.h perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
run-command.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
run-command.h perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
sigchain.c perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
sigchain.h perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
strbuf.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
strbuf.h perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
string.c perf_counter tools: Define and use our own u64, s64 etc. definitions 2009-06-19 18:25:47 +02:00
string.h perf_counter: Detect debugfs location 2009-07-22 18:05:57 +02:00
strlist.c strlist: Introduce strlist__entry and strlist__nr_entries methods 2009-07-11 19:20:25 +02:00
strlist.h strlist: Introduce strlist__entry and strlist__nr_entries methods 2009-07-11 19:20:25 +02:00
symbol.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
symbol.h perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
thread.c perf tools: Factorize the thread code in a dedicated file 2009-08-15 16:10:19 +02:00
thread.h perf tools: Factorize the thread code in a dedicated file 2009-08-15 16:10:19 +02:00
types.h perf_counter tools: Rework the file format 2009-06-25 21:39:04 +02:00
usage.c perf top: Fall back to cpu-clock-tick hrtimer sampling if no cycle counter available 2009-06-07 17:31:52 +02:00
util.h perf tools: Factorize the map helpers 2009-08-12 12:37:37 +02:00
values.c perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
values.h perf: Enable more compiler warnings 2009-08-16 10:47:47 +02:00
wrapper.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00