On Fri, May 20, 2016 at 08:17:50PM -0600, Sandra Loosemore wrote:
> On 05/20/2016 10:36 AM, Marek Polacek wrote:
> > diff --git gcc/doc/invoke.texi gcc/doc/invoke.texi
> > index f3d087f..5909b9d 100644
> > --- gcc/doc/invoke.texi
> > +++ gcc/doc/invoke.texi
> > @@ -297,7 +297,8 @@ Objective-C and Objective-C++ Dialects}.
> > -Wsuggest-attribute=@r{[}pure@r{|}const@r{|}noreturn@r{|}format@r{]} @gol
> > -Wsuggest-final-types @gol -Wsuggest-final-methods -Wsuggest-override @gol
> > -Wmissing-format-attribute -Wsubobject-linkage @gol
> > --Wswitch -Wswitch-default -Wswitch-enum -Wswitch-bool -Wsync-nand @gol
> > +-Wswitch -Wswitch-default -Wswitch-enum -Wswitch-bool @gol
> > +-Wswitch-unreachable -Wsync-nand @gol
> > -Wsystem-headers -Wtautological-compare -Wtrampolines -Wtrigraphs @gol
> > -Wtype-limits -Wundef @gol
> > -Wuninitialized -Wunknown-pragmas -Wunsafe-loop-optimizations @gol
>
> I think this list is supposed to be alphabetized except with respect to
> -Wno-foo being sorted as if it were -Wfoo. I realize there are other
> inconsistencies, but can you at least keep the -Wswitch* entries in proper
> order?
Sure, fixed.
> > @@ -4144,6 +4145,39 @@ switch ((int) (a == 4))
> > @end smallexample
> > This warning is enabled by default for C and C++ programs.
> >
> > +@item -Wswitch-unreachable
> > +@opindex Wswitch-unreachable
> > +@opindex Wno-switch-unreachable
> > +Warn whenever a @code{switch} statement contains statements between the
> > +controlling expression and the first case label, which will never be
> > +executed. For example:
> > +@smallexample
> > +@group
> > +switch (cond)
> > + @{
> > + i = 15;
> > + @dots{}
> > + case 5:
> > + @dots{}
> > + @}
> > +@end group
> > +@end smallexample
> > +@option{-Wswitch-unreachable} will not warn if the statement between the
>
> s/will/does/
OK.
> > +controlling expression and the first case label is just a declaration:
> > +@smallexample
> > +@group
> > +switch (cond)
> > + @{
> > + int i;
> > + @dots{}
> > + case 5:
> > + i = 5;
> > + @dots{}
> > + @}
> > +@end group
> > +@end smallexample
> > +This warning is enabled by default for C and C++ programs.
> > +
> > @item -Wsync-nand @r{(C and C++ only)}
> > @opindex Wsync-nand
> > @opindex Wno-sync-nand
>
> The doc part of the patch is OK with those things fixed.
Thanks, I made the changes.
Marek