diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2025-07-05 08:40:45 -0700 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2025-07-06 07:58:48 -0700 |
commit | e17e3de4bbb1848ce1ce7d69d7786b92f1969b11 (patch) | |
tree | eb7902fceef67f7df31b6845ffb5e4aeb6535dfb /gcc/rust/hir/tree/rust-hir-pattern-abstract.h | |
parent | 5c2dc85c1923af118a9ec9657dc969fd3d95498a (diff) | |
download | gcc-e17e3de4bbb1848ce1ce7d69d7786b92f1969b11.zip gcc-e17e3de4bbb1848ce1ce7d69d7786b92f1969b11.tar.gz gcc-e17e3de4bbb1848ce1ce7d69d7786b92f1969b11.tar.bz2 |
cdce: Fix non-call exceptions with signaling nans [PR120951]
The cdce code introduces a test for a NaN using the EQ_EXPR code.
The problem is EQ_EXPR can cause an exception with non-call exceptions
and signaling nans turned on. This is now correctly rejected by the verfier
since r16-241-g4c40e3d7b9152f.
The fix is seperate out the comparison into its own statement from the GIMPLE_COND.
Bootstrapped and tested on x86_64-linux-gnu with no regressions.
PR tree-optimization/120951
gcc/ChangeLog:
* tree-call-cdce.cc (use_internal_fn): For non-call exceptions
with EQ_EXPR can throw for floating point types, then create
the EQ_EXPR seperately.
gcc/testsuite/ChangeLog:
* gcc.dg/torture/pr120951-1.c: New test.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'gcc/rust/hir/tree/rust-hir-pattern-abstract.h')
0 files changed, 0 insertions, 0 deletions