-Wpedantic and -Wextra will enable other warnings beyond -Wall.
However C has limited type system compared to that of C++.
What you are really after is Lint.
The Leader in Static Analysis for C/C++ -- PC-lint and FlexeLint
which is what I use myself.
# -Wenum-compare:
# Warn about a comparison between values of different enumerated
# types. In C++ enumeral mismatches in conditional expressions are
# also diagnosed and the warning is enabled by default. In C this
# warning is enabled by -Wall.
CFLAGS += -Wextra
CPPFLAGS += -Wextra
# -Wextra:
# This enables some extra warning flags that are not enabled by
# -Wall.
#
# -Wclobbered
# -Wempty-body
# -Wignored-qualifiers
# -Wmissing-field-initializers
# -Wmissing-parameter-type (C only)
# -Wold-style-declaration (C only)
# -Woverride-init
# -Wsign-compare
# -Wtype-limits
# -Wuninitialized
# -Wunused-parameter (only with -Wunused or -Wall)
# -Wunused-but-set-parameter (only with -Wunused or -Wall)
#
# The option -Wextra also prints warning messages for the following cases:
#
# A pointer is compared against integer zero with ‘<’, ‘<=’, ‘>’, or ‘>=’.
# (C++ only) An enumerator and a non-enumerator both appear in a conditional expression.
# (C++ only) Ambiguous virtual bases.
# (C++ only) Subscripting an array that has been declared ‘register’.
# (C++ only) Taking the address of a variable that has been declared ‘register’.
# (C++ only) A base class is not initialized in a derived class's copy constructor.
#CFLAGS += -Wpedantic
#CPPFLAGS += -Wpedantic
#-Wpedantic
# Issue all the warnings demanded by strict ISO C and ISO C++; reject
# all programs that use forbidden extensions, and some other programs
# that do not follow ISO C and ISO C++. For ISO C, follows the version
# of the ISO C standard specified by any -std option used. Valid ISO
# C and ISO C++ programs should compile properly with or without this
# option (though a rare few require -ansi or a -std option specifying
# the required version of ISO C). However, without this option,
# certain GNU extensions and traditional C and C++ features are
# supported as well. With this option, they are rejected.
#
# Some users try to use -Wpedantic to check programs for strict ISO C
# conformance. They soon find that it does not do quite what they
# want: it finds some non-ISO practices, but not all—only those for
# which ISO C requires a diagnostic, and some others for which
# diagnostics have been added.
#CFLAGS += -pedantic-errors
#CPPFLAGS += -pedantic-errors
# Like -Wpedantic, except that errors are produced rather than warnings.