------- Comment #3 from manu at gcc dot gnu dot org 2010-06-17 07:18 ------- You are right. The issue occurs in VRP but not because of the disjoint ranges. Pass vrp1 is able to optimize your first example (nested if) but not the second (nested switch). I think this is a missed optimization. Not easy to fix, though.
-- manu at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-06-17 07:18:58 date| | Summary|-Wuninitialized reports |-Wuninitialized reports |false warning in nested |false warning in nested |switch statements |switch statements (missed | |switch optimization) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44547