From: Richard Stallman Date: Mon, 30 Mar 1992 02:55:23 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c4fcf531ae0b236cf8ba7b3f664da08e858bfc89;p=gcc.git *** empty log message *** From-SVN: r632 --- diff --git a/gcc/stmt.c b/gcc/stmt.c index 6d5e848f8e9..744666454a4 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -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 ();