]> gcc.gnu.org Git - gcc.git/commitdiff
*** empty log message ***
authorRichard Stallman <rms@gnu.org>
Mon, 30 Mar 1992 02:55:23 +0000 (02:55 +0000)
committerRichard Stallman <rms@gnu.org>
Mon, 30 Mar 1992 02:55:23 +0000 (02:55 +0000)
From-SVN: r632

gcc/stmt.c

index 6d5e848f8e9af993f93d0e7563bc5f9912e4d1a7..744666454a47762e0b70c02ea308bd4ebd568f6e 100644 (file)
@@ -3650,15 +3650,19 @@ expand_end_case (orig_index)
 #ifdef HAVE_casesi
          if (HAVE_casesi)
            {
+             enum machine_mode index_mode = SImode;
+             tree index_type = GET_MODE_BITSIZE (index_mode);
+
              /* Convert the index to SImode.  */
-             if (TYPE_MODE (TREE_TYPE (index_expr)) == DImode)
+             if (GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (index_expr)))
+                 > GET_MODE_BITSIZE (index_mode))
                {
                  index_expr = build (MINUS_EXPR, TREE_TYPE (index_expr),
                                      index_expr, minval);
                  minval = integer_zero_node;
                }
-             if (TYPE_MODE (TREE_TYPE (index_expr)) != SImode)
-               index_expr = convert (type_for_size (GET_MODE_BITSIZE (SImode), 0),
+             if (TYPE_MODE (TREE_TYPE (index_expr)) != index_mode)
+               index_expr = convert (type_for_size (index_type, 0),
                                      index_expr);
              index = expand_expr (index_expr, 0, VOIDmode, 0);
              emit_queue ();
This page took 0.067769 seconds and 5 git commands to generate.