diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2022-10-10 13:43:16 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2022-10-10 14:50:17 +0200 |
commit | e23f7dabe6f7ce1d92bfc07d2b62cc7bcdc0caae (patch) | |
tree | 22f2eeb7803a86dd4845ca6d93b41f8120cc0177 /gcc | |
parent | 69988cd58becc115b236f88627fe92436baaa674 (diff) | |
download | gcc-e23f7dabe6f7ce1d92bfc07d2b62cc7bcdc0caae.zip gcc-e23f7dabe6f7ce1d92bfc07d2b62cc7bcdc0caae.tar.gz gcc-e23f7dabe6f7ce1d92bfc07d2b62cc7bcdc0caae.tar.bz2 |
Add frange::maybe_isnan (bool sign).
It is useful to know if there's the possiblity of a NAN with a given
sign. This is to complement maybe_isnan(void) which returns TRUE for a
NAN of any sign.
A follow-up patch implementing ABS will make use of this.
gcc/ChangeLog:
* value-range.h (frange::maybe_isnan): New.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/value-range.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/value-range.h b/gcc/value-range.h index 484f911..07a2067 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -323,6 +323,7 @@ public: bool known_isnan () const; bool known_isinf () const; bool maybe_isnan () const; + bool maybe_isnan (bool sign) const; bool maybe_isinf () const; bool signbit_p (bool &signbit) const; private: @@ -1295,6 +1296,18 @@ frange::maybe_isnan () const return m_pos_nan || m_neg_nan; } +// Return TRUE if range is possibly a NAN with SIGN. + +inline bool +frange::maybe_isnan (bool sign) const +{ + if (undefined_p ()) + return false; + if (sign) + return m_neg_nan; + return m_pos_nan; +} + // Return TRUE if range is a +NAN or -NAN. inline bool |