aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-10-10 13:43:16 +0200
committerAldy Hernandez <aldyh@redhat.com>2022-10-10 14:50:17 +0200
commite23f7dabe6f7ce1d92bfc07d2b62cc7bcdc0caae (patch)
tree22f2eeb7803a86dd4845ca6d93b41f8120cc0177 /gcc
parent69988cd58becc115b236f88627fe92436baaa674 (diff)
downloadgcc-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.h13
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