diff options
Diffstat (limited to 'gnulib/doc/manywarnings.texi')
m--------- | gnulib | 0 | ||||
-rw-r--r-- | gnulib/doc/manywarnings.texi | 48 |
2 files changed, 48 insertions, 0 deletions
diff --git a/gnulib b/gnulib deleted file mode 160000 -Subproject 443bc5ffcf7429e557f4a371b0661abe98ddbc1 diff --git a/gnulib/doc/manywarnings.texi b/gnulib/doc/manywarnings.texi new file mode 100644 index 0000000..cb2cf29 --- /dev/null +++ b/gnulib/doc/manywarnings.texi @@ -0,0 +1,48 @@ +@node manywarnings +@section manywarnings + +The @code{manywarnings} module allows you to enable as many GCC warnings as +possible for your package. The purpose is to protect against introducing new +code that triggers warnings that weren't already triggered by the existing code +base. + +An example use of the module is as follows: + +@smallexample +gl_MANYWARN_ALL_GCC([warnings]) +# Set up the list of the pointless, undesired warnings. +nw= +nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings +nw="$nw -Wundef" # All compiler preprocessors support #if UNDEF +nw="$nw -Wtraditional" # All compilers nowadays support ANSI C +nw="$nw -Wconversion" # These warnings usually don't point to mistakes. +nw="$nw -Wsign-conversion" # Likewise. +# Enable all GCC warnings not in this list. +gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw]) +for w in $warnings; do + gl_WARN_ADD([$w]) +done +@end smallexample + +This module is meant to be used by developers who are not very experienced +regarding the various GCC warning options. In the beginning you will set the +list of undesired warnings (@samp{nw} in the example above) to empty, and +compile the package with all possible warnings enabled. The GCC option +@code{-fdiagnostics-show-option}, available in GCC 4.1 or newer, helps +understanding which warnings originated from which option. Then you will +go through the list of warnings. You will likely deactivate warnings that +occur often and don't point to mistakes in the code, by adding them to the +@samp{nw} variable, then reconfiguring and recompiling. When warnings point +to real mistakes and bugs in the code, you will of course not disable +them. + +There are also many GCC warning options which usually don't point to mistakes +in the code; these warnings enforce a certain programming style. It is a +project management decision whether you want your code to follow any of these +styles. Note that some of these programming styles are conflicting. You +cannot have them all; you have to choose among them. + +When a new version of GCC is released, you can add the new warning options +that it introduces into the @code{gl_MANYWARN_ALL_GCC} macro (and submit your +modification to the Gnulib maintainers :-)), and enjoy the benefits of the +new warnings, while adding the undesired ones to the @samp{nw} variable. |