diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2015-08-16 16:37:18 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2015-08-16 16:37:18 +0000 |
commit | c541d5217e6571a0a5d8bf56db831c1ad63756ff (patch) | |
tree | e7f1fbe7cd34b2aaa62a306bea0cee890892570a /gcc/fortran/trans-intrinsic.c | |
parent | 9f801fd79aca0090598da27d04506ddc65103443 (diff) | |
download | gcc-c541d5217e6571a0a5d8bf56db831c1ad63756ff.zip gcc-c541d5217e6571a0a5d8bf56db831c1ad63756ff.tar.gz gcc-c541d5217e6571a0a5d8bf56db831c1ad63756ff.tar.bz2 |
trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type generic BUILT_IN_SIGNBIT.
* trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
generic BUILT_IN_SIGNBIT.
(conv_intrinsic_ieee_copy_sign): Likewise.
* f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
variants of BUILT_IN_SIGNBIT.
* mathbuiltins.def: Remove SIGNBIT.
From-SVN: r226924
Diffstat (limited to 'gcc/fortran/trans-intrinsic.c')
-rw-r--r-- | gcc/fortran/trans-intrinsic.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 1aa299b..60e18b8 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -7417,8 +7417,7 @@ conv_intrinsic_ieee_is_normal (gfc_se * se, gfc_expr * expr) static void conv_intrinsic_ieee_is_negative (gfc_se * se, gfc_expr * expr) { - tree arg, signbit, isnan, decl; - int argprec; + tree arg, signbit, isnan; /* Convert arg, evaluate it only once. */ conv_ieee_function_args (se, expr, &arg, 1); @@ -7429,9 +7428,9 @@ conv_intrinsic_ieee_is_negative (gfc_se * se, gfc_expr * expr) 1, arg); STRIP_TYPE_NOPS (isnan); - argprec = TYPE_PRECISION (TREE_TYPE (arg)); - decl = builtin_decl_for_precision (BUILT_IN_SIGNBIT, argprec); - signbit = build_call_expr_loc (input_location, decl, 1, arg); + signbit = build_call_expr_loc (input_location, + builtin_decl_explicit (BUILT_IN_SIGNBIT), + 1, arg); signbit = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, signbit, integer_zero_node); @@ -7579,9 +7578,9 @@ conv_intrinsic_ieee_copy_sign (gfc_se * se, gfc_expr * expr) conv_ieee_function_args (se, expr, args, 2); /* Get the sign of the second argument. */ - argprec = TYPE_PRECISION (TREE_TYPE (args[1])); - decl = builtin_decl_for_precision (BUILT_IN_SIGNBIT, argprec); - sign = build_call_expr_loc (input_location, decl, 1, args[1]); + sign = build_call_expr_loc (input_location, + builtin_decl_explicit (BUILT_IN_SIGNBIT), + 1, args[1]); sign = fold_build2_loc (input_location, NE_EXPR, boolean_type_node, sign, integer_zero_node); |