aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2015-05-24 14:55:50 +0000
committerMikael Morin <mikael@gcc.gnu.org>2015-05-24 14:55:50 +0000
commitbc0c7f396b0c9648365aee462e25107db00227e8 (patch)
treec644ad2ddb4bd4d235ee54821e1e4f3eb62d84b9 /gcc/fortran/resolve.c
parent70e7f2a2df3f167c71b1a84ffb865c9a8e2610e1 (diff)
downloadgcc-bc0c7f396b0c9648365aee462e25107db00227e8.zip
gcc-bc0c7f396b0c9648365aee462e25107db00227e8.tar.gz
gcc-bc0c7f396b0c9648365aee462e25107db00227e8.tar.bz2
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
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 492c016..e615cc6 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -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,