Add real_iszero to real.*
We have real_isnegzero but no real_iszero. We could memcmp with 0, but that's just ugly. gcc/ChangeLog: * real.cc (real_iszero): New. * real.h (real_iszero): New.
This commit is contained in:
parent
33cae27763
commit
1d3145360f
2 changed files with 22 additions and 0 deletions
16
gcc/real.cc
16
gcc/real.cc
|
@ -1272,6 +1272,22 @@ real_isneg (const REAL_VALUE_TYPE *r)
|
|||
return r->sign;
|
||||
}
|
||||
|
||||
/* Determine whether a floating-point value X is plus or minus zero. */
|
||||
|
||||
bool
|
||||
real_iszero (const REAL_VALUE_TYPE *r)
|
||||
{
|
||||
return r->cl == rvc_zero;
|
||||
}
|
||||
|
||||
/* Determine whether a floating-point value X is zero with SIGN. */
|
||||
|
||||
bool
|
||||
real_iszero (const REAL_VALUE_TYPE *r, bool sign)
|
||||
{
|
||||
return real_iszero (r) && r->sign == sign;
|
||||
}
|
||||
|
||||
/* Determine whether a floating-point value X is minus zero. */
|
||||
|
||||
bool
|
||||
|
|
|
@ -295,6 +295,12 @@ extern bool real_isneg (const REAL_VALUE_TYPE *);
|
|||
/* Determine whether a floating-point value X is minus zero. */
|
||||
extern bool real_isnegzero (const REAL_VALUE_TYPE *);
|
||||
|
||||
/* Determine whether a floating-point value X is plus or minus zero. */
|
||||
extern bool real_iszero (const REAL_VALUE_TYPE *);
|
||||
|
||||
/* Determine whether a floating-point value X is zero with SIGN. */
|
||||
extern bool real_iszero (const REAL_VALUE_TYPE *, bool sign);
|
||||
|
||||
/* Test relationships between reals. */
|
||||
extern bool real_identical (const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *);
|
||||
extern bool real_equal (const REAL_VALUE_TYPE *, const REAL_VALUE_TYPE *);
|
||||
|
|
Loading…
Add table
Reference in a new issue