aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2023-07-20 11:55:59 +0200
committerFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2023-07-20 11:55:59 +0200
commit23ad5ed7432bea7c5d00837f12d8334f53c43cb4 (patch)
tree1e11ba271991df2e6ed1f4563ec19517001e24e3 /gcc
parentdca2874897ec58ea1c22a9c2161f112fff07cfb2 (diff)
downloadgcc-23ad5ed7432bea7c5d00837f12d8334f53c43cb4.zip
gcc-23ad5ed7432bea7c5d00837f12d8334f53c43cb4.tar.gz
gcc-23ad5ed7432bea7c5d00837f12d8334f53c43cb4.tar.bz2
Fortran: fix wrong rebase that broke bootstrap
Sorry... gcc/fortran/ * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): Only define it once.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/trans-intrinsic.cc86
1 files changed, 0 insertions, 86 deletions
diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc
index e0f86b1..2893091 100644
--- a/gcc/fortran/trans-intrinsic.cc
+++ b/gcc/fortran/trans-intrinsic.cc
@@ -10462,92 +10462,6 @@ conv_intrinsic_ieee_comparison (gfc_se * se, gfc_expr * expr, int signaling,
}
-/* Generate code for comparison functions IEEE_QUIET_* and
- IEEE_SIGNALING_*. */
-
-static void
-conv_intrinsic_ieee_comparison (gfc_se * se, gfc_expr * expr, int signaling,
- const char *name)
-{
- tree args[2];
- tree arg1, arg2, res;
-
- /* Evaluate arguments only once. */
- conv_ieee_function_args (se, expr, args, 2);
- arg1 = gfc_evaluate_now (args[0], &se->pre);
- arg2 = gfc_evaluate_now (args[1], &se->pre);
-
- if (startswith (name, "eq"))
- {
- if (signaling)
- res = build_call_expr_loc (input_location,
- builtin_decl_explicit (BUILT_IN_ISEQSIG),
- 2, arg1, arg2);
- else
- res = fold_build2_loc (input_location, EQ_EXPR, logical_type_node,
- arg1, arg2);
- }
- else if (startswith (name, "ne"))
- {
- if (signaling)
- {
- res = build_call_expr_loc (input_location,
- builtin_decl_explicit (BUILT_IN_ISEQSIG),
- 2, arg1, arg2);
- res = fold_build1_loc (input_location, TRUTH_NOT_EXPR,
- logical_type_node, res);
- }
- else
- res = fold_build2_loc (input_location, NE_EXPR, logical_type_node,
- arg1, arg2);
- }
- else if (startswith (name, "ge"))
- {
- if (signaling)
- res = fold_build2_loc (input_location, GE_EXPR, logical_type_node,
- arg1, arg2);
- else
- res = build_call_expr_loc (input_location,
- builtin_decl_explicit (BUILT_IN_ISGREATEREQUAL),
- 2, arg1, arg2);
- }
- else if (startswith (name, "gt"))
- {
- if (signaling)
- res = fold_build2_loc (input_location, GT_EXPR, logical_type_node,
- arg1, arg2);
- else
- res = build_call_expr_loc (input_location,
- builtin_decl_explicit (BUILT_IN_ISGREATER),
- 2, arg1, arg2);
- }
- else if (startswith (name, "le"))
- {
- if (signaling)
- res = fold_build2_loc (input_location, LE_EXPR, logical_type_node,
- arg1, arg2);
- else
- res = build_call_expr_loc (input_location,
- builtin_decl_explicit (BUILT_IN_ISLESSEQUAL),
- 2, arg1, arg2);
- }
- else if (startswith (name, "lt"))
- {
- if (signaling)
- res = fold_build2_loc (input_location, LT_EXPR, logical_type_node,
- arg1, arg2);
- else
- res = build_call_expr_loc (input_location,
- builtin_decl_explicit (BUILT_IN_ISLESS),
- 2, arg1, arg2);
- }
- else
- gcc_unreachable ();
-
- se->expr = fold_convert (gfc_typenode_for_spec (&expr->ts), res);
-}
-
-
/* Generate code for an intrinsic function from the IEEE_ARITHMETIC
module. */