]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
(expand_end_case): Have INDEX_TYPE track conversions done to
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 28 May 1994 23:03:12 +0000 (19:03 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 28 May 1994 23:03:12 +0000 (19:03 -0400)
INDEX_EXPR.

From-SVN: r7381

gcc/stmt.c

index 40d515438241d4806f933f9f7b06f74aba54deca..f62cb63245f4ea4f11c559a9fb898ac45cba7462 100644 (file)
@@ -4462,8 +4462,12 @@ expand_end_case (orig_index)
              else
                {
                  if (TYPE_MODE (index_type) != index_mode)
-                   index_expr = convert (type_for_size (index_bits, 0),
-                                         index_expr);
+                   {
+                     index_expr = convert (type_for_size (index_bits, 0),
+                                           index_expr);
+                     index_type = TREE_TYPE (index_expr);
+                   }
+
                  index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0);
                }
              emit_queue ();
@@ -4500,6 +4504,7 @@ expand_end_case (orig_index)
              index_expr = convert (thiscase->data.case_stmt.nominal_type,
                                    fold (build (MINUS_EXPR, index_type,
                                                 index_expr, minval)));
+             index_type = TREE_TYPE (index_expr);
              index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0);
              emit_queue ();
              index = protect_from_queue (index, 0);