aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2011-11-04 00:31:19 +0000
committerMikael Morin <mikael@gcc.gnu.org>2011-11-04 00:31:19 +0000
commit0c08de8f8bb5d8b110152e2cefcbf66e318ba2b0 (patch)
tree7ac5a93345f05859b44e7b6e108725ac0433cba3 /gcc/fortran/trans-array.c
parent44d23d9e74ffcb55fb87ffa0a1c9a36a5308d3d3 (diff)
downloadgcc-0c08de8f8bb5d8b110152e2cefcbf66e318ba2b0.zip
gcc-0c08de8f8bb5d8b110152e2cefcbf66e318ba2b0.tar.gz
gcc-0c08de8f8bb5d8b110152e2cefcbf66e318ba2b0.tar.bz2
re PR fortran/43829 (Scalarization of reductions)
PR fortran/43829 * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic case in the assertion. * trans-intrinsic (enter_nested_loop): New function. (gfc_conv_intrinsic_arith): Support non-scalar cases. (nest_loop_dimension, walk_inline_intrinsic_arith): New functions. (walk_inline_intrinsic_function): Handle sum and product. (gfc_inline_intrinsic_function_p): Ditto. * trans.h (gfc_get_loopinfo): New macro. From-SVN: r180920
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r--gcc/fortran/trans-array.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index acd9aec..262743d 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -6187,7 +6187,8 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
gcc_assert ((expr->value.function.esym != NULL
&& expr->value.function.esym->attr.elemental)
|| (expr->value.function.isym != NULL
- && expr->value.function.isym->elemental));
+ && expr->value.function.isym->elemental)
+ || gfc_inline_intrinsic_function_p (expr));
else
gcc_assert (ss_type == GFC_SS_INTRINSIC);