diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2011-11-04 00:31:19 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2011-11-04 00:31:19 +0000 |
commit | 0c08de8f8bb5d8b110152e2cefcbf66e318ba2b0 (patch) | |
tree | 7ac5a93345f05859b44e7b6e108725ac0433cba3 /gcc/fortran/trans-array.c | |
parent | 44d23d9e74ffcb55fb87ffa0a1c9a36a5308d3d3 (diff) | |
download | gcc-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.c | 3 |
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); |