diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-28 19:03:12 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-28 19:03:12 -0400 |
commit | d3b35d7584ef28d51bdf2a2fed49ba18c924fb81 (patch) | |
tree | 97e19bdcc458407bbcd6831a0818af1b20673521 /gcc/stmt.c | |
parent | 7d558bfe5f65554ad87d913129c8d3989f1d117d (diff) | |
download | gcc-d3b35d7584ef28d51bdf2a2fed49ba18c924fb81.zip gcc-d3b35d7584ef28d51bdf2a2fed49ba18c924fb81.tar.gz gcc-d3b35d7584ef28d51bdf2a2fed49ba18c924fb81.tar.bz2 |
(expand_end_case): Have INDEX_TYPE track conversions done to
INDEX_EXPR.
From-SVN: r7381
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -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); |