A number of warning options are missing from the list shown under -Wall (for example, -Winit-self, -Wlogical-not-parentheses, and -Wplacement-new). The patch adds the missing ones and adjusts some of the existing ones to maintain an alphabetical order. It also makes a couple of minor clarifications to -Wextra, and adds an example to the -Wplacement-new option.
Martin
2015-12-09 Martin Sebor <mse...@redhat.com> * invoke.texi (Warning Options): Update -Wall options. Clarify when some -Wextra options are enabled. Add -Wplacement-new example. Index: invoke.texi =================================================================== --- invoke.texi (revision 231436) +++ invoke.texi (working copy) @@ -3541,26 +3541,33 @@ @gccoptlist{-Waddress @gol -Warray-bounds=1 @r{(only with} @option{-O2}@r{)} @gol +-Wbool-compare @gol -Wc++11-compat -Wc++14-compat@gol -Wchar-subscripts @gol +-Wcomment @gol +-Wduplicated-cond @gol -Wenum-compare @r{(in C/ObjC; this is on by default in C++)} @gol +-Wformat @gol +-Wimplicit @r{(C and Objective-C only)} @gol -Wimplicit-int @r{(C and Objective-C only)} @gol -Wimplicit-function-declaration @r{(C and Objective-C only)} @gol --Wbool-compare @gol --Wduplicated-cond @gol --Wcomment @gol --Wformat @gol +-Winit-self @r{(only for C++)} @gol +-Wlogical-not-parentheses -Wmain @r{(only for C/ObjC and unless} @option{-ffreestanding}@r{)} @gol -Wmaybe-uninitialized @gol +-Wmemset-transposed-args @gol -Wmissing-braces @r{(only for C/ObjC)} @gol +-Wnarrowing @r{(only for C++)} @gol -Wnonnull @gol -Wopenmp-simd @gol -Wparentheses @gol +-Wplacement-new @r{(only for C++)} @gol -Wpointer-sign @gol -Wreorder @gol -Wreturn-type @gol -Wsequence-point @gol -Wsign-compare @r{(only in C++)} @gol +-Wsizeof-pointer-memaccess @gol -Wstrict-aliasing @gol -Wstrict-overflow=1 @gol -Wswitch @gol @@ -3598,10 +3605,10 @@ -Wmissing-parameter-type @r{(C only)} @gol -Wold-style-declaration @r{(C only)} @gol -Woverride-init @gol --Wsign-compare @gol +-Wsign-compare @r{(C only)} @gol -Wtype-limits @gol -Wuninitialized @gol --Wshift-negative-value @gol +-Wshift-negative-value @r{(in C++03 and in C99 and newer)} @gol -Wunused-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)} @gol -Wunused-but-set-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)} @gol } @@ -4895,8 +4902,15 @@ @opindex Wno-placement-new Warn about placement new expressions with undefined behavior, such as constructing an object in a buffer that is smaller than the type of -the object. - +the object. For example, the placement new expression below is diagnosed +because it attempts to construct an array of 64 integers in a buffer only +64 bytes large. +@smallexample +char buf [64]; +new (buf) int[64]; +@end smallexample +This warning is enabled by @option{-Wall}. + @item -Wpointer-arith @opindex Wpointer-arith @opindex Wno-pointer-arith @@ -5113,8 +5127,9 @@ @cindex signed and unsigned values, comparison warning Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned. -This warning is also enabled by @option{-Wextra}; to get the other warnings -of @option{-Wextra} without this warning, use @option{-Wextra -Wno-sign-compare}. +In C++, this warning is also enabled by @option{-Wall}. In C, it is also +enabled by @option{-Wextra}; to get the other warnings of @option{-Wextra} +without this warning, use @option{-Wextra -Wno-sign-compare}. @item -Wsign-conversion @opindex Wsign-conversion