From 61321991ff5f055015750ddf36444705b9921464 Mon Sep 17 00:00:00 2001 From: Paul Thomas Date: Wed, 1 Mar 2006 22:24:19 +0000 Subject: re PR fortran/26393 (ICE with function returning variable lenght array) 2006-03-01 Paul Thomas * iresolve.c (gfc_resolve_dot_product): Remove any difference in treatment of logical types. * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): New function. PR fortran/26393 * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols must be referenced to include unreferenced symbols in an interface body. PR fortran/20938 * trans-array.c (gfc_conv_resolve_dependencies): Add call to gfc_are_equivalenced_arrays. * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New functions. (gfc_free_namespace): Call them. * trans-common.c (copy_equiv_list_to_ns): New function. (add_equivalences): Call it. * gfortran.h: Add equiv_lists to gfc_namespace and define gfc_equiv_list and gfc_equiv_info. * dependency.c (gfc_are_equivalenced_arrays): New function. (gfc_check_dependency): Call it. * dependency.h: Prototype for gfc_are_equivalenced_arrays. 2006-03-01 Paul Thomas * gfortran.dg/logical_dot_product.f90: New test. PR fortran/26393 * gfortran.dg/used_interface_ref.f90: New test. PR fortran/20938 * gfortran.dg/dependency_2.f90: New test. * gfortran.fortran-torture/execute/where17.f90: New test. * gfortran.fortran-torture/execute/where18.f90: New test. * gfortran.fortran-torture/execute/where19.f90: New test. * gfortran.fortran-torture/execute/where20.f90: New test. From-SVN: r111616 --- gcc/fortran/iresolve.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'gcc/fortran/iresolve.c') diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index e154a34f635..f961c776e21 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -549,21 +549,13 @@ gfc_resolve_dot_product (gfc_expr * f, gfc_expr * a, gfc_expr * b) { gfc_expr temp; - if (a->ts.type == BT_LOGICAL && b->ts.type == BT_LOGICAL) - { - f->ts.type = BT_LOGICAL; - f->ts.kind = gfc_default_logical_kind; - } - else - { - temp.expr_type = EXPR_OP; - gfc_clear_ts (&temp.ts); - temp.value.op.operator = INTRINSIC_NONE; - temp.value.op.op1 = a; - temp.value.op.op2 = b; - gfc_type_convert_binary (&temp); - f->ts = temp.ts; - } + temp.expr_type = EXPR_OP; + gfc_clear_ts (&temp.ts); + temp.value.op.operator = INTRINSIC_NONE; + temp.value.op.op1 = a; + temp.value.op.op2 = b; + gfc_type_convert_binary (&temp); + f->ts = temp.ts; f->value.function.name = gfc_get_string (PREFIX("dot_product_%c%d"), gfc_type_letter (f->ts.type), -- cgit v1.2.1