mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
PR116510: Add missing fold_converts into tree switch if conversion
Passes test suite. Ok to commit? gcc/ChangeLog: PR middle-end/116510 * tree-if-conv.cc (predicate_bbs): Add missing fold_converts. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-switch-ifcvt-3.c: New test.
This commit is contained in:
12
gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-3.c
Normal file
12
gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-3.c
Normal file
@@ -0,0 +1,12 @@
|
||||
/* { dg-do compile } */
|
||||
// PR116510
|
||||
|
||||
char excmap_def_0;
|
||||
int gg_strescape_i;
|
||||
void gg_strescape() {
|
||||
for (; gg_strescape_i; gg_strescape_i++)
|
||||
switch ((unsigned char)gg_strescape_i)
|
||||
case '\\':
|
||||
case '"':
|
||||
excmap_def_0 = 0;
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user