PR fortran/59026
* trans-expr.c (gfc_conv_procedure_call): Pass the value of the
actual argument to a formal argument with the value attribute
in an elemental procedure.
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59026
* gfortran.dg/elemental_by_value_1.f90 : New test
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207645
138bc75d-0d04-0410-961f-
82ee72b054a4
+2014-02-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/59026
+ * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
+ actual argument to a formal argument with the value attribute
+ in an elemental procedure.
+
2014-02-08 Janus Weil <janus@gcc.gnu.org>
Mikael Morin <mikael.morin@gcc.gnu.org>
gfc_init_se (&parmse, se);
parm_kind = ELEMENTAL;
- gfc_conv_expr_reference (&parmse, e);
+ if (fsym && fsym->attr.value)
+ gfc_conv_expr (&parmse, e);
+ else
+ gfc_conv_expr_reference (&parmse, e);
+
if (e->ts.type == BT_CHARACTER && !e->rank
&& e->expr_type == EXPR_FUNCTION)
parmse.expr = build_fold_indirect_ref_loc (input_location,
+2014-02-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/59026
+ * gfortran.dg/elemental_by_value_1.f90 : New test
+
2014-02-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/58470
--- /dev/null
+! { dg-do run }
+!
+! PR fortran/59026
+!
+! Contributed by F-X Coudert <fxcoudert@gcc.gnu.org>
+!
+! Failed to dereference the argument in scalarized loop.
+!
+elemental integer function foo(x)
+ integer, value :: x
+ foo = x + 1
+end function
+
+ interface
+ elemental integer function foo(x)
+ integer, value :: x
+ end function
+ end interface
+
+ if (foo(42) .ne. 43) call abort
+ if (any (foo([0,1]) .ne. [1,2])) call abort
+end