diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2009-06-19 15:33:55 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2009-06-19 15:33:55 +0000 |
commit | eb6f9a86c5a7406cabd069093d34d435cf92bd13 (patch) | |
tree | 83e5c787fecb044f7803f22a3aa5b3d699b063b9 /gcc/fortran/resolve.c | |
parent | 642324bb16ffe88f0aa81c4ced9bdc1ba63471ab (diff) | |
download | gcc-eb6f9a86c5a7406cabd069093d34d435cf92bd13.zip gcc-eb6f9a86c5a7406cabd069093d34d435cf92bd13.tar.gz gcc-eb6f9a86c5a7406cabd069093d34d435cf92bd13.tar.bz2 |
gfortran.h (gfc_expr): Use mpc_t to represent complex numbers.
* gfortran.h (gfc_expr): Use mpc_t to represent complex numbers.
* arith.c, dump-parse-tree.c, expr.c, module.c, resolve.c,
simplify.c, target-memory.c, target-memory.h, trans-const.c,
trans-expr.c: Convert to mpc_t throughout.
From-SVN: r148711
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 4117d80..ccee61f 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -7610,31 +7610,39 @@ build_default_init_expr (gfc_symbol *sym) break; case BT_COMPLEX: +#ifdef HAVE_mpc + mpc_init2 (init_expr->value.complex, mpfr_get_default_prec()); +#else mpfr_init (init_expr->value.complex.r); mpfr_init (init_expr->value.complex.i); +#endif switch (gfc_option.flag_init_real) { case GFC_INIT_REAL_SNAN: init_expr->is_snan = 1; /* Fall through. */ case GFC_INIT_REAL_NAN: - mpfr_set_nan (init_expr->value.complex.r); - mpfr_set_nan (init_expr->value.complex.i); + mpfr_set_nan (mpc_realref (init_expr->value.complex)); + mpfr_set_nan (mpc_imagref (init_expr->value.complex)); break; case GFC_INIT_REAL_INF: - mpfr_set_inf (init_expr->value.complex.r, 1); - mpfr_set_inf (init_expr->value.complex.i, 1); + mpfr_set_inf (mpc_realref (init_expr->value.complex), 1); + mpfr_set_inf (mpc_imagref (init_expr->value.complex), 1); break; case GFC_INIT_REAL_NEG_INF: - mpfr_set_inf (init_expr->value.complex.r, -1); - mpfr_set_inf (init_expr->value.complex.i, -1); + mpfr_set_inf (mpc_realref (init_expr->value.complex), -1); + mpfr_set_inf (mpc_imagref (init_expr->value.complex), -1); break; case GFC_INIT_REAL_ZERO: +#ifdef HAVE_mpc + mpc_set_ui (init_expr->value.complex, 0, GFC_MPC_RND_MODE); +#else mpfr_set_ui (init_expr->value.complex.r, 0.0, GFC_RND_MODE); mpfr_set_ui (init_expr->value.complex.i, 0.0, GFC_RND_MODE); +#endif break; default: |