summaryrefslogtreecommitdiff
path: root/gcc/sreal.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/sreal.c')
-rw-r--r--gcc/sreal.c43
1 files changed, 13 insertions, 30 deletions
diff --git a/gcc/sreal.c b/gcc/sreal.c
index 8980659c99b..662d27d5548 100644
--- a/gcc/sreal.c
+++ b/gcc/sreal.c
@@ -94,17 +94,12 @@ copy (sreal *r, sreal *a)
static inline void
shift_right (sreal *x, int s)
{
-#ifdef ENABLE_CHECKING
- if (s <= 0 || s > SREAL_BITS)
- abort ();
- if (x->exp + s > SREAL_MAX_EXP)
- {
- /* Exponent should never be so large because shift_right is used only by
- sreal_add and sreal_sub ant thus the number cannot be shifted out from
- exponent range. */
- abort ();
- }
-#endif
+ gcc_assert (s > 0);
+ gcc_assert (s <= SREAL_BITS);
+ /* Exponent should never be so large because shift_right is used only by
+ sreal_add and sreal_sub ant thus the number cannot be shifted out from
+ exponent range. */
+ gcc_assert (x->exp + s <= SREAL_MAX_EXP);
x->exp += s;
@@ -401,10 +396,7 @@ sreal_sub (sreal *r, sreal *a, sreal *b)
sreal tmp;
sreal *bb;
- if (sreal_compare (a, b) < 0)
- {
- abort ();
- }
+ gcc_assert (sreal_compare (a, b) >= 0);
dexp = a->exp - b->exp;
r->exp = a->exp;
@@ -509,11 +501,8 @@ sreal_div (sreal *r, sreal *a, sreal *b)
#if SREAL_PART_BITS < 32
unsigned HOST_WIDE_INT tmp, tmp1, tmp2;
- if (b->sig_hi < SREAL_MIN_SIG)
- {
- abort ();
- }
- else if (a->sig_hi < SREAL_MIN_SIG)
+ gcc_assert (b->sig_hi >= SREAL_MIN_SIG);
+ if (a->sig_hi < SREAL_MIN_SIG)
{
r->sig_hi = 0;
r->sig_lo = 0;
@@ -546,16 +535,10 @@ sreal_div (sreal *r, sreal *a, sreal *b)
normalize (r);
}
#else
- if (b->sig == 0)
- {
- abort ();
- }
- else
- {
- r->sig = (a->sig << SREAL_PART_BITS) / b->sig;
- r->exp = a->exp - b->exp - SREAL_PART_BITS;
- normalize (r);
- }
+ gcc_assert (b->sig != 0);
+ r->sig = (a->sig << SREAL_PART_BITS) / b->sig;
+ r->exp = a->exp - b->exp - SREAL_PART_BITS;
+ normalize (r);
#endif
return r;
}