ubsan: Don't test for NaNs if those do not exist (PR97926)
2021-03-22 Segher Boessenkool <segher@kernel.crashing.org> PR target/97926 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if there are no NaNs.
This commit is contained in:
parent
00b46c00c8
commit
ba16797fe6
12
gcc/ubsan.c
12
gcc/ubsan.c
|
@ -1890,8 +1890,16 @@ ubsan_instrument_float_cast (location_t loc, tree type, tree expr)
|
|||
else
|
||||
return NULL_TREE;
|
||||
|
||||
t = fold_build2 (UNLE_EXPR, boolean_type_node, expr, min);
|
||||
tt = fold_build2 (UNGE_EXPR, boolean_type_node, expr, max);
|
||||
if (HONOR_NANS (mode))
|
||||
{
|
||||
t = fold_build2 (UNLE_EXPR, boolean_type_node, expr, min);
|
||||
tt = fold_build2 (UNGE_EXPR, boolean_type_node, expr, max);
|
||||
}
|
||||
else
|
||||
{
|
||||
t = fold_build2 (LE_EXPR, boolean_type_node, expr, min);
|
||||
tt = fold_build2 (GE_EXPR, boolean_type_node, expr, max);
|
||||
}
|
||||
t = fold_build2 (TRUTH_OR_EXPR, boolean_type_node, t, tt);
|
||||
if (integer_zerop (t))
|
||||
return NULL_TREE;
|
||||
|
|
Loading…
Reference in New Issue