aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-switch-conversion.c
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2012-08-06 08:32:20 +0000
committerTom de Vries <vries@gcc.gnu.org>2012-08-06 08:32:20 +0000
commitd9e408ded1129fa823d55137eb1cb2c1a9979adb (patch)
tree2c74e3ba5c2b04f9ab84a79275a8686e2d8be698 /gcc/tree-switch-conversion.c
parentd7f41b2d87214f6e014f3091a2956f0170a8b41e (diff)
downloadgcc-d9e408ded1129fa823d55137eb1cb2c1a9979adb.zip
gcc-d9e408ded1129fa823d55137eb1cb2c1a9979adb.tar.gz
gcc-d9e408ded1129fa823d55137eb1cb2c1a9979adb.tar.bz2
tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type.
2012-08-06 Tom de Vries <tom@codesourcery.com> * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type. From-SVN: r190168
Diffstat (limited to 'gcc/tree-switch-conversion.c')
-rw-r--r--gcc/tree-switch-conversion.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 0630f1a..6c61eca 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -384,10 +384,10 @@ emit_case_bit_tests (gimple swtch, tree index_expr,
gsi = gsi_last_bb (switch_bb);
- /* idx = (unsigned) (x - minval) */
- idx = fold_build2 (MINUS_EXPR, index_type, index_expr,
- fold_convert (index_type, minval));
- idx = fold_convert (unsigned_index_type, idx);
+ /* idx = (unsigned)x - minval. */
+ idx = fold_convert (unsigned_index_type, index_expr);
+ idx = fold_build2 (MINUS_EXPR, unsigned_index_type, idx,
+ fold_convert (unsigned_index_type, minval));
idx = force_gimple_operand_gsi (&gsi, idx,
/*simple=*/true, NULL_TREE,
/*before=*/true, GSI_SAME_STMT);