diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2015-05-09 13:36:14 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2015-05-09 13:36:14 +0000 |
commit | 14aeb3cd27717e1dd11ad5044e738a350e7d946b (patch) | |
tree | fff70f7f0c28192df8e62ca16e07ccec8557141d /gcc/fortran/trans-array.h | |
parent | 1f0e2688af26e66efa9db498d6db01760832fee3 (diff) | |
download | gcc-14aeb3cd27717e1dd11ad5044e738a350e7d946b.zip gcc-14aeb3cd27717e1dd11ad5044e738a350e7d946b.tar.gz gcc-14aeb3cd27717e1dd11ad5044e738a350e7d946b.tar.bz2 |
Fix fortran/65894 elemental procedures wrong-code
gcc/fortran/
2015-05-09 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/65894
* trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
New prototype.
* trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
New function.
(gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
as conditional.
(gfc_walk_elemental_function_args): Set the dummy_arg field.
* trans.h (gfc_ss_info): New subfield dummy_arg.
* trans-expr.c (gfc_conv_procedure_call): Revert the change
of revision 222361.
(gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
as conditional.
gcc/testsuite/
2015-05-09 Andre Vehreschild <vehre@gmx.de>
PR fortran/65894
* gfortran.dg/elemental_subroutine_11.f90: New test.
From-SVN: r222968
Diffstat (limited to 'gcc/fortran/trans-array.h')
-rw-r--r-- | gcc/fortran/trans-array.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/fortran/trans-array.h b/gcc/fortran/trans-array.h index 2310b65..2155b58 100644 --- a/gcc/fortran/trans-array.h +++ b/gcc/fortran/trans-array.h @@ -103,6 +103,8 @@ gfc_ss *gfc_get_temp_ss (tree, tree, int); /* Allocate a new scalar type ss. */ gfc_ss *gfc_get_scalar_ss (gfc_ss *, gfc_expr *); +bool gfc_scalar_elemental_arg_saved_as_reference (gfc_ss_info *); + /* Calculates the lower bound and stride of array sections. */ void gfc_conv_ss_startstride (gfc_loopinfo *); |