summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorjanus <janus@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-13 13:41:37 +0000
committerjanus <janus@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-13 13:41:37 +0000
commit452a374337164f940ddae97b6e8632bf34475e7f (patch)
tree5a7bba20ef265a3d6d5893b9a44c4302063875a2 /gcc/fortran/trans-expr.c
parent504b51e7b185179f4f08601f711e37d4c237be8c (diff)
downloadppe42-gcc-452a374337164f940ddae97b6e8632bf34475e7f.tar.gz
ppe42-gcc-452a374337164f940ddae97b6e8632bf34475e7f.zip
2009-07-13 Janus Weil <janus@gcc.gnu.org>
PR fortran/40646 * module.c (mio_symbol): If the symbol has formal arguments, the formal namespace will be present. * resolve.c (resolve_actual_arglist): Correctly handle 'called' procedure pointer components as actual arguments. (resolve_fl_derived,resolve_symbol): Make sure the formal namespace is present. * trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal arguments of procedure pointer components. 2009-07-13 Janus Weil <janus@gcc.gnu.org> PR fortran/40646 * gfortran.dg/proc_ptr_22.f90: Extended. * gfortran.dg/proc_ptr_comp_12.f90: Extended. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149586 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index b6a825a8125..787251d7627 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -2560,7 +2560,10 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
!= EXPR_CONSTANT)
|| (comp && comp->attr.dimension)
|| (!comp && sym->attr.dimension));
- formal = sym->formal;
+ if (comp)
+ formal = comp->formal;
+ else
+ formal = sym->formal;
/* Evaluate the arguments. */
for (; arg != NULL; arg = arg->next, formal = formal ? formal->next : NULL)
{
OpenPOWER on IntegriCloud