------- Comment #5 from rguenth at gcc dot gnu dot org 2008-10-01 13:20 ------- Note that after tuples we always have a default label again, just the default label isn't a default label. I have a patch to fix that, sort of
Index: tree-vrp.c =================================================================== *** tree-vrp.c (revision 140810) --- tree-vrp.c (working copy) *************** execute_vrp (void) *** 7149,7157 **** --- 7149,7164 ---- { size_t j; size_t n = TREE_VEC_LENGTH (su->vec); + tree label; gimple_switch_set_num_labels (su->stmt, n); for (j = 0; j < n; j++) gimple_switch_set_label (su->stmt, j, TREE_VEC_ELT (su->vec, j)); + /* As we may have replaced the default label with a regular one + make sure to make it a real default label again. This ensures + optimal expansion. */ + label = gimple_switch_default_label (su->stmt); + CASE_LOW (label) = NULL_TREE; + CASE_HIGH (label) = NULL_TREE; } if (VEC_length (edge, to_remove_edges) > 0) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37285