http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49161
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-25 14:13:06 UTC --- Created attachment 24356 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24356 gcc46-pr49161.patch Untested fix. The problem seems to be that GIMPLE_SWITCH uses until VRP different CASE_LABEL_EXPRs for the same bb, so it adds to the same edge assertion that x == 4 and that x == 3, while instead x >= 3 and x <= 4 assertions should be added.