Commit bc0c7f39 by Mikael Morin

re PR fortran/66257 (ELEMENTAL procedure pointer component XX is not allowed as an actual argument)

	PR fortran/66257
gcc/fortran/
	* resolve.c (resolve_actual_arglist): Don't throw an error
	if the argument with procedure pointer component is not a variable.
gcc/testsuite/
	* typebound_call_27.f90: New file.

From-SVN: r223631
parent 70e7f2a2
2015-05-24 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/66257
* resolve.c (resolve_actual_arglist): Don't throw an error
if the argument with procedure pointer component is not a variable.
2015-05-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
......
......@@ -1981,7 +1981,8 @@ resolve_actual_arglist (gfc_actual_arglist *arg, procedure_type ptype,
}
comp = gfc_get_proc_ptr_comp(e);
if (comp && comp->attr.elemental)
if (e->expr_type == EXPR_VARIABLE
&& comp && comp->attr.elemental)
{
gfc_error ("ELEMENTAL procedure pointer component %qs is not "
"allowed as an actual argument at %L", comp->name,
......
2015-05-24 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/66257
* typebound_call_27.f90: New file.
2015-05-23 Nathan Sidwell <nathan@acm.org>
PR c++/65936
......
! { dg-do compile }
!
! PR fortran/66257
! Check that typebound function calls are accepted as actual argument.
!
MODULE test_class
IMPLICIT NONE
PRIVATE
PUBLIC:: test
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
TYPE test
PRIVATE
CONTAINS
PRIVATE
PROCEDURE, PUBLIC:: E
PROCEDURE, PUBLIC:: Om
END TYPE test
CONTAINS
ELEMENTAL FUNCTION E (self, a)
IMPLICIT NONE
CLASS(test), INTENT(IN):: self
REAL(kind=dp), INTENT(IN):: a
REAL(kind=dp):: E
E = a
END FUNCTION E
ELEMENTAL FUNCTION Om (self, z)
IMPLICIT NONE
CLASS(test), INTENT(IN):: self
REAL(kind=dp), INTENT(IN):: z
REAL(kind=dp):: Om
Om = self%E(self%E(z))
Om = log10(self%E(z))
END FUNCTION Om
END MODULE test_class
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment