summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorjanus <janus@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-24 10:59:56 +0000
committerjanus <janus@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-24 10:59:56 +0000
commita84cb1a9aa78048db7cea2fe645d52451524f092 (patch)
treea8542fe2b693d75e3d9116f00704aa7e5a014c21 /gcc/fortran/resolve.c
parent55bf42adac53aa1c9e33b8170c67430c9cdff4e0 (diff)
downloadppe42-gcc-a84cb1a9aa78048db7cea2fe645d52451524f092.tar.gz
ppe42-gcc-a84cb1a9aa78048db7cea2fe645d52451524f092.zip
2009-06-24 Janus Weil <janus@gcc.gnu.org>
PR fortran/40427 * gfortran.h (gfc_component): New member 'formal_ns'. (gfc_copy_formal_args_ppc,void gfc_ppc_use): New. * interface.c (gfc_ppc_use): New function, analogous to gfc_procedure_use, but for procedure pointer components. * module.c (MOD_VERSION): Bump module version. (mio_component): Treat formal arguments. (mio_formal_arglist): Changed argument from gfc_symbol to gfc_formal_arglist. (mio_symbol): Changed argument of mio_formal_arglist. * resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use, to check actual arguments and treat formal args correctly. (resolve_fl_derived): Copy formal args of procedure pointer components from their interface. * symbol.c (gfc_copy_formal_args_ppc): New function, analogous to gfc_copy_formal_args, but for procedure pointer components. 2009-06-24 Janus Weil <janus@gcc.gnu.org> PR fortran/40427 * gfortran.dg/proc_ptr_comp_11.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148906 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index ccee61f00f0..9bb6e226d1c 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -4847,9 +4847,7 @@ resolve_ppc_call (gfc_code* c)
comp->formal == NULL) == FAILURE)
return FAILURE;
- /* TODO: Check actual arguments.
- gfc_procedure_use (stree->n.sym, &c->expr1->value.compcall.actual,
- &c->expr1->where);*/
+ gfc_ppc_use (comp, &c->expr1->value.compcall.actual, &c->expr1->where);
return SUCCESS;
}
@@ -4881,8 +4879,7 @@ resolve_expr_ppc (gfc_expr* e)
comp->formal == NULL) == FAILURE)
return FAILURE;
- /* TODO: Check actual arguments.
- gfc_procedure_use (stree->n.sym, &e->value.compcall.actual, &e->where); */
+ gfc_ppc_use (comp, &e->value.compcall.actual, &e->where);
return SUCCESS;
}
@@ -9040,7 +9037,7 @@ resolve_fl_derived (gfc_symbol *sym)
c->ts.interface = ifc;
c->attr.function = ifc->attr.function;
c->attr.subroutine = ifc->attr.subroutine;
- /* TODO: gfc_copy_formal_args (c, ifc); */
+ gfc_copy_formal_args_ppc (c, ifc);
c->attr.allocatable = ifc->attr.allocatable;
c->attr.pointer = ifc->attr.pointer;
@@ -9051,7 +9048,7 @@ resolve_fl_derived (gfc_symbol *sym)
c->attr.always_explicit = ifc->attr.always_explicit;
/* Copy array spec. */
c->as = gfc_copy_array_spec (ifc->as);
- /*if (c->as)
+ /* TODO: if (c->as)
{
int i;
for (i = 0; i < c->as->rank; i++)
@@ -9066,7 +9063,7 @@ resolve_fl_derived (gfc_symbol *sym)
c->ts.cl = gfc_get_charlen();
c->ts.cl->resolved = ifc->ts.cl->resolved;
c->ts.cl->length = gfc_copy_expr (ifc->ts.cl->length);
- /*gfc_expr_replace_symbols (c->ts.cl->length, c);*/
+ /* TODO: gfc_expr_replace_symbols (c->ts.cl->length, c);*/
/* Add charlen to namespace. */
/*if (c->formal_ns)
{
OpenPOWER on IntegriCloud