On Jan 21, 2012, at 10:12 AM, David Blaikie wrote:
> Author: dblaikie
> Date: Sat Jan 21 12:12:07 2012
> New Revision: 148640
>
> URL: http://llvm.org/viewvc/llvm-project?rev=148640&view=rev
> Log:
> Add -Wswitch-enum-redundant-default.
>
> This warning acts as the complement to the main -Wswitch-enum warning (which
> warns whenever a switch over enum without a default doesn't cover all values
> of
> the enum) & has been an an-doc coding convention in LLVM and Clang in my
> experience. The purpose is to ensure there's never a "dead" default in a
> switch-over-enum because this would hide future -Wswitch-enum errors.
We have a related problem with -Wswitch-enum in clang. with this option a
default should not turn
off the warning when default covers un-used case labels. Currently clang's
behavior of --Wswitch and
-Wswitch-enum are the same. I think fixing that will not make the new option
necessary.
-Wswitch
Warn whenever a "switch" statement has an index of enumerated type
and lacks a "case" for one or
more of the named codes of that enumeration. (The presence of a
"default" label prevents this
warning.) "case" labels outside the enumeration range also provoke
warnings when this option is
used. This warning is enabled by -Wall.
-Wswitch-enum
Warn whenever a "switch" statement has an index of enumerated type
and lacks a "case" for one or
more of the named codes of that enumeration. "case" labels outside
the enumeration range also
provoke warnings when this option is used.
int test18() {
enum { A, B } a;
switch (a) {
case A: return 0;
default: return 2;
}
}
- Fariborz
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits