diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2019-11-20 22:08:29 +0200 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2019-11-20 22:08:29 +0200 |
commit | acb156cc3170a848e1235d1f3402d42018219766 (patch) | |
tree | 03981e07a9585a8e925cc4df8f22c537538035f3 /gcc/fortran/simplify.c | |
parent | c9d4cc5df27acfcea40e18cdcd6933b3b1349b9a (diff) | |
download | gcc-acb156cc3170a848e1235d1f3402d42018219766.zip gcc-acb156cc3170a848e1235d1f3402d42018219766.tar.gz gcc-acb156cc3170a848e1235d1f3402d42018219766.tar.bz2 |
PR 92463 MPFR modernization: Revert r269139
Commit r269139 fixed an accidental dependency on MPFR 3.0. As we now
require at least MPFR 3.1.0+ we can revert it and instead use the
simpler MPFR 3.0+ code.
ChangeLog entry of the original commit was:
2019-02-23 David Malcolm <dmalcolm@redhat.com>
Jakub Jelinek <jakub@redhat.com>
PR middle-end/88074
* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
(norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t.
ChangeLog for this commit:
2019-11-20 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/92463
Revert r269139
* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p.
(norm2_add_squared): Likewise. Use mpfr_exp_t rather than
mp_exp_t.
From-SVN: r278525
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r-- | gcc/fortran/simplify.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index a5c940c..b48bf01 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -6023,8 +6023,8 @@ norm2_add_squared (gfc_expr *result, gfc_expr *e) gfc_set_model_kind (result->ts.kind); int index = gfc_validate_kind (BT_REAL, result->ts.kind, false); - mp_exp_t exp; - if (mpfr_number_p (result->value.real) && !mpfr_zero_p (result->value.real)) + mpfr_exp_t exp; + if (mpfr_regular_p (result->value.real)) { exp = mpfr_get_exp (result->value.real); /* If result is getting close to overflowing, scale down. */ @@ -6038,7 +6038,7 @@ norm2_add_squared (gfc_expr *result, gfc_expr *e) } mpfr_init (tmp); - if (mpfr_number_p (e->value.real) && !mpfr_zero_p (e->value.real)) + if (mpfr_regular_p (e->value.real)) { exp = mpfr_get_exp (e->value.real); /* If e**2 would overflow or close to overflowing, scale down. */ @@ -6079,9 +6079,7 @@ norm2_do_sqrt (gfc_expr *result, gfc_expr *e) if (result != e) mpfr_set (result->value.real, e->value.real, GFC_RND_MODE); mpfr_sqrt (result->value.real, result->value.real, GFC_RND_MODE); - if (norm2_scale - && mpfr_number_p (result->value.real) - && !mpfr_zero_p (result->value.real)) + if (norm2_scale && mpfr_regular_p (result->value.real)) { mpfr_t tmp; mpfr_init (tmp); @@ -6120,9 +6118,7 @@ gfc_simplify_norm2 (gfc_expr *e, gfc_expr *dim) result = simplify_transformation_to_scalar (result, e, NULL, norm2_add_squared); mpfr_sqrt (result->value.real, result->value.real, GFC_RND_MODE); - if (norm2_scale - && mpfr_number_p (result->value.real) - && !mpfr_zero_p (result->value.real)) + if (norm2_scale && mpfr_regular_p (result->value.real)) { mpfr_t tmp; mpfr_init (tmp); |