summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-intrinsic.c
diff options
context:
space:
mode:
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2015-08-16 16:37:18 +0000
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2015-08-16 16:37:18 +0000
commitd351aaf556535a4430296502bd79d8be9a813e30 (patch)
treee7f1fbe7cd34b2aaa62a306bea0cee890892570a /gcc/fortran/trans-intrinsic.c
parent9be7a73d6b1ddad9470ebe8185ce0b6360209359 (diff)
downloadgcc-d351aaf556535a4430296502bd79d8be9a813e30.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226924 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-intrinsic.c')
-rw-r--r--gcc/fortran/trans-intrinsic.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 1aa299be21a..60e18b8eaf5 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);