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
This commit is contained in:
parent
70e7f2a2df
commit
bc0c7f396b
4 changed files with 54 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
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,
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
41
gcc/testsuite/gfortran.dg/typebound_call_27.f90
Normal file
41
gcc/testsuite/gfortran.dg/typebound_call_27.f90
Normal file
|
@ -0,0 +1,41 @@
|
|||
! { 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
|
Loading…
Add table
Reference in a new issue