On Sat, 8 Jul 2006, Roger Sayle wrote:
> 2006-07-08 Roger Sayle <roger@xxxxxxxxxxxx>
> * 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.
Basically a diagnostic regression fix, removal of a quadratic loop in
the C front-end to speed up the compiler, and a code clean-up to avoid
undocumented use of tree_common bits. Unfortunately, summer vacations
have resulted in this going for over a month without comment and not
being pinged earlier.
I've rebootstrapped and regression tested the patch and testcases on
x86_64-unknown-linux-gnu against 20060822 mainline, again with no new
Many thanks in advance,