* tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
commit359d87c692e1b327e950e62d1a90034eb5de7d14
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 26 Aug 2006 23:51:14 +0000 (26 23:51 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 26 Aug 2006 23:51:14 +0000 (26 23:51 +0000)
tree69dba2343ca72d778fac60a1c90248608167d71f
parentaa89df21c8136a9588e64ab57aa08ced53d6b414
* tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
temporary visit flags on CASE_LABEL_EXPRs.
* c-common.c (match_case_to_enum): Add function comment.  Avoid
O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
(c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
CASE_HIGH_SEEN for enumerated types.  If the switch expression is
a constant, only warn if that constant value isn't handled.

* gcc.dg/Wswitch-enum-2.c: New test case.
* gcc.dg/Wswitch-enum-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116481 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/c-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/Wswitch-enum-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wswitch-enum-3.c [new file with mode: 0644]
gcc/tree.h