diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2014-10-09 09:47:25 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2014-10-09 09:47:25 +0000 |
commit | 3b7ea188c0457b2e70bdefc8cb53a790e7e9b296 (patch) | |
tree | 50e92902ab44fae4fa8b683d332d148d1627916f /gcc/fortran/trans-expr.c | |
parent | f9d29866b5bdf7d42d974dc3f91fb2bd834354db (diff) | |
download | gcc-3b7ea188c0457b2e70bdefc8cb53a790e7e9b296.zip gcc-3b7ea188c0457b2e70bdefc8cb53a790e7e9b296.tar.gz gcc-3b7ea188c0457b2e70bdefc8cb53a790e7e9b296.tar.bz2 |
f95-lang.c (gfc_init_builtin_functions): Add more floating-point built-ins.
* f95-lang.c (gfc_init_builtin_functions): Add more floating-point
built-ins.
* mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
remainder, rint and signbit.
* trans-decl.c (save_fp_state, restore_fp_state): Move to
trans-intrinsic.c
(gfc_generate_function_code): Use new names for these two functions.
* trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
emit code from the front-end.
* trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
conv_ieee_function_args, conv_intrinsic_ieee_builtin,
conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
New functions.
* trans.h (gfc_conv_ieee_arithmetic_function,
gfc_save_fp_state, gfc_restore_fp_state): New prototypes.
* ieee/ieee_helper.c (ieee_is_finite_*, ieee_is_nan_*,
ieee_is_negative_*, ieee_is_normal_*, ieee_copy_sign_*,
ieee_unordered_*, ieee_logb_*, ieee_rint_*, ieee_scalb_*,
ieee_rem_*, ieee_next_after_*): Remove functions.
* gfortran.map (GFORTRAN_1.5): Remove corresponding symbols.
From-SVN: r216036
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 6077a32..18bc502 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -5768,6 +5768,11 @@ gfc_conv_function_expr (gfc_se * se, gfc_expr * expr) if (!sym) sym = expr->symtree->n.sym; + /* The IEEE_ARITHMETIC functions are caught here. */ + if (sym->from_intmod == INTMOD_IEEE_ARITHMETIC) + if (gfc_conv_ieee_arithmetic_function (se, expr)) + return; + /* We distinguish statement functions from general functions to improve runtime performance. */ if (sym->attr.proc == PROC_ST_FUNCTION) |