------- 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

Reply via email to