From: Tom de Vries Date: Mon, 6 Aug 2012 08:32:20 +0000 (+0000) Subject: tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type. X-Git-Tag: releases/gcc-4.8.0~4105 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9e408ded1129fa823d55137eb1cb2c1a9979adb;p=thirdparty%2Fgcc.git tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type. 2012-08-06 Tom de Vries * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type. From-SVN: r190168 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e228bfb2c6dc..2169ca5627e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-08-06 Tom de Vries + + * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in + unsigned type. + 2012-08-05 Venkataramanan Kumar * doc/invoke.texi: Document AMD btver2. diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c index 0630f1a5b933..6c61eca3b612 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);