diff options
author | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-08-16 16:37:18 +0000 |
---|---|---|
committer | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-08-16 16:37:18 +0000 |
commit | d351aaf556535a4430296502bd79d8be9a813e30 (patch) | |
tree | e7f1fbe7cd34b2aaa62a306bea0cee890892570a /gcc/fortran/trans-intrinsic.c | |
parent | 9be7a73d6b1ddad9470ebe8185ce0b6360209359 (diff) | |
download | gcc-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.c | 15 |
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); |