builtins.c (do_mpc_ckconv, [...]): Use mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.

* builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
	mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.

fortran:
	* simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
	instead of MPC_RE/MPC_IM.

From-SVN: r148213
This commit is contained in:
Kaveh R. Ghazi 2009-06-05 16:20:25 +00:00 committed by Kaveh Ghazi
parent 9f706f23d1
commit 26a347c575
4 changed files with 19 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2009-06-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/40340

View File

@ -13216,21 +13216,21 @@ do_mpc_ckconv (mpc_srcptr m, tree type, int inexact)
/* Proceed iff we get a normal number, i.e. not NaN or Inf and no
overflow/underflow occurred. If -frounding-math, proceed iff the
result of calling FUNC was exact. */
if (mpfr_number_p (MPC_RE (m)) && mpfr_number_p (MPC_IM (m))
if (mpfr_number_p (mpc_realref (m)) && mpfr_number_p (mpc_imagref (m))
&& !mpfr_overflow_p () && !mpfr_underflow_p ()
&& (!flag_rounding_math || !inexact))
{
REAL_VALUE_TYPE re, im;
real_from_mpfr (&re, MPC_RE (m), type, GMP_RNDN);
real_from_mpfr (&im, MPC_IM (m), type, GMP_RNDN);
real_from_mpfr (&re, mpc_realref (m), type, GMP_RNDN);
real_from_mpfr (&im, mpc_imagref (m), type, GMP_RNDN);
/* Proceed iff GCC's REAL_VALUE_TYPE can hold the MPFR values,
check for overflow/underflow. If the REAL_VALUE_TYPE is zero
but the mpft_t is not, then we underflowed in the
conversion. */
if (real_isfinite (&re) && real_isfinite (&im)
&& (re.cl == rvc_zero) == (mpfr_zero_p (MPC_RE (m)) != 0)
&& (im.cl == rvc_zero) == (mpfr_zero_p (MPC_IM (m)) != 0))
&& (re.cl == rvc_zero) == (mpfr_zero_p (mpc_realref (m)) != 0)
&& (im.cl == rvc_zero) == (mpfr_zero_p (mpc_imagref (m)) != 0))
{
REAL_VALUE_TYPE re_mode, im_mode;
@ -13676,8 +13676,8 @@ do_mpc_arg1 (tree arg, tree type, int (*func)(mpc_ptr, mpc_srcptr, mpc_rnd_t))
mpc_t m;
mpc_init2 (m, prec);
mpfr_from_real (MPC_RE(m), re, rnd);
mpfr_from_real (MPC_IM(m), im, rnd);
mpfr_from_real (mpc_realref(m), re, rnd);
mpfr_from_real (mpc_imagref(m), im, rnd);
mpfr_clear_flags ();
inexact = func (m, m, crnd);
result = do_mpc_ckconv (m, type, inexact);

View File

@ -1,3 +1,8 @@
2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
instead of MPC_RE/MPC_IM.
2009-06-05 Alexandre Oliva <aoliva@redhat.com>
* trans-decl.c (gfc_build_qualified_array): Don't skip generation

View File

@ -223,8 +223,8 @@ call_mpc_func (mpfr_ptr result_re, mpfr_ptr result_im,
mpc_init2 (c, mpfr_get_default_prec());
mpc_set_fr_fr (c, input_re, input_im, GFC_MPC_RND_MODE);
func (c, c, GFC_MPC_RND_MODE);
mpfr_set (result_re, MPC_RE (c), GFC_RND_MODE);
mpfr_set (result_im, MPC_IM (c), GFC_RND_MODE);
mpfr_set (result_re, mpc_realref (c), GFC_RND_MODE);
mpfr_set (result_im, mpc_imagref (c), GFC_RND_MODE);
mpc_clear (c);
}
#endif