aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2022-12-06 10:23:55 +0100
committerJakub Jelinek <jakub@redhat.com>2022-12-06 10:23:55 +0100
commit0525a7fad2a5b1d933a9662c11aa074b38cfa3d5 (patch)
treef3c1a4d33a99178060ac3e5e793608f6df62f0dc /gcc/c
parent9f80367e539839fff1df2c85fc2640638199fc9e (diff)
downloadgcc-0525a7fad2a5b1d933a9662c11aa074b38cfa3d5.zip
gcc-0525a7fad2a5b1d933a9662c11aa074b38cfa3d5.tar.gz
gcc-0525a7fad2a5b1d933a9662c11aa074b38cfa3d5.tar.bz2
range-op-float: Fix up ICE in lower_bound [PR107975]
According to https://gcc.gnu.org/pipermail/gcc-regression/2022-December/077258.html my patch caused some ICEs, e.g. the following testcase ICEs. The problem is that lower_bound and upper_bound methods on a france assert that the range isn't VR_NAN or VR_UNDEFINED. All the op1_range/op2_range methods already return early if lhs.undefined_p, but the other cases (when lhs is VR_NAN or the other opN is VR_NAN or VR_UNDEFINED) aren't. float_binary_op_range_finish will DTRT for those cases already. 2022-12-06 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/107975 * range-op-float.cc (foperator_mult::op1_range, foperator_div::op1_range, foperator_div::op2_range): Just return float_binary_op_range_finish result if lhs is known NAN, or the other operand is known NAN or UNDEFINED. * gcc.dg/pr107975.c: New test.
Diffstat (limited to 'gcc/c')
0 files changed, 0 insertions, 0 deletions