Add -Wformat -Wformat-security to the list of compile flags.
This was not as straight forward as expected. Specifically, adding the
new flag to CFLAGS in configure.ac did not work and was causing
compiler warnings. For instance, compiling memcheck/tests/execve2.c will
generate a -Wnonnull warning even though the testcase is explicitly
compiled with -Wno-nonnull. The reason is that (a) -Wformat is implied by
-Wnonnull and (b) the list of compiler flags gets assembled in the wrong
order. The culprit appears to be that we modify CFLAGS in configure.ac and
that really is not the right place. Conceptually, configure should determine
tool-chain capabilities and not assemble compiler flags. That should be done
in Makefiles. This patch entangles all this.

So, whatever was added to CFLAGS in configure.ac has now been moved to
Makefile.all.am and Makefile.tool-tests.am. Those are:
-Wno-long-long
-Wwrite-strings
-Wcast-qual
-fno-stack-protector
Note, that this change allows us to simplify Makefile.tool-tests.am which
in the past was disabling some of those flags (e.g. by adding -Wno-cast-qual
again).
In case of the clang compiler, extra command line options are needed. I've
moved those into a separate 'if COMPILER_IS_CLANG' section and not merge
them into baseline flags.

Related to BZ 334727.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14798 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/Makefile.tool-tests.am b/Makefile.tool-tests.am
index 4ca6f7c..ca9d9a6 100644
--- a/Makefile.tool-tests.am
+++ b/Makefile.tool-tests.am
@@ -18,8 +18,10 @@
 
 # Nb: Tools need to augment these flags with an arch-selection option, such
 # as $(AM_FLAG_M3264_PRI).
-AM_CFLAGS   = -Winline -Wall -Wshadow -g
-AM_CXXFLAGS = -Winline -Wall -Wshadow -g
+AM_CFLAGS   = -Winline -Wall -Wshadow -Wno-long-long -g \
+              @FLAG_FNO_STACK_PROTECTOR@
+AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
+              @FLAG_FNO_STACK_PROTECTOR@
 # Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
 # automake;  see comments in Makefile.all.am for more detail.
 AM_CCASFLAGS = $(AM_CPPFLAGS)
@@ -28,21 +30,17 @@
 noinst_DSYMS = $(check_PROGRAMS)
 endif
 
-if HAS_WRITE_STRINGS_WARNING
-CFLAGS += -Wno-write-strings
-endif
-
 if COMPILER_IS_CLANG
-CFLAGS   += -Wno-format-extra-args       # perf/tinycc.c
-CFLAGS   += -Wno-literal-range           # none/tests/amd64/fxtract.c
-CFLAGS   += -Wno-string-plus-int         # drd/tests/annotate_ignore_rw.c
-CXXFLAGS += -Wno-unused-private-field    # drd/tests/tsan_unittest.cpp
+AM_CFLAGS   += -Wno-format-extra-args       # perf/tinycc.c
+AM_CFLAGS   += -Wno-literal-range           # none/tests/amd64/fxtract.c
+AM_CFLAGS   += -Wno-tautological-constant-out-of-range-compare # ...../aes.c
+AM_CFLAGS   += -Wno-self-assign             # memcheck/tests/unit_libcbase.c
+AM_CFLAGS   += -Wno-string-plus-int         # drd/tests/annotate_ignore_rw.c
+AM_CFLAGS   += -Wno-uninitialized           # clang 3.4.2 and earlier
+AM_CFLAGS   += -Wno-unused-value            # clang 3.0.0
+AM_CXXFLAGS += -Wno-unused-private-field    # drd/tests/tsan_unittest.cpp
 endif
 
-# Compile testcases without -Wcast-qual
-CFLAGS   += -Wno-cast-qual
-CXXFLAGS += -Wno-cast-qual
-
 check-local: build-noinst_DSYMS
 
 clean-local: clean-noinst_DSYMS