aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-if-conv.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-if-conv.cc')
-rw-r--r--gcc/tree-if-conv.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/tree-if-conv.cc b/gcc/tree-if-conv.cc
index 90c754a..376a464 100644
--- a/gcc/tree-if-conv.cc
+++ b/gcc/tree-if-conv.cc
@@ -1477,10 +1477,12 @@ predicate_bbs (loop_p loop)
{
tree low = build2_loc (loc, GE_EXPR,
boolean_type_node,
- index, CASE_LOW (label));
+ index, fold_convert_loc (loc, TREE_TYPE (index),
+ CASE_LOW (label)));
tree high = build2_loc (loc, LE_EXPR,
boolean_type_node,
- index, CASE_HIGH (label));
+ index, fold_convert_loc (loc, TREE_TYPE (index),
+ CASE_HIGH (label)));
case_cond = build2_loc (loc, TRUTH_AND_EXPR,
boolean_type_node,
low, high);
@@ -1489,7 +1491,8 @@ predicate_bbs (loop_p loop)
case_cond = build2_loc (loc, EQ_EXPR,
boolean_type_node,
index,
- CASE_LOW (gimple_switch_label (sw, i)));
+ fold_convert_loc (loc, TREE_TYPE (index),
+ CASE_LOW (label)));
if (i > 1)
switch_cond = build2_loc (loc, TRUTH_OR_EXPR,
boolean_type_node,