diff options
| author | janus <janus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-24 10:59:56 +0000 |
|---|---|---|
| committer | janus <janus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-24 10:59:56 +0000 |
| commit | a84cb1a9aa78048db7cea2fe645d52451524f092 (patch) | |
| tree | a8542fe2b693d75e3d9116f00704aa7e5a014c21 /gcc/fortran/resolve.c | |
| parent | 55bf42adac53aa1c9e33b8170c67430c9cdff4e0 (diff) | |
| download | ppe42-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.c | 13 |
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) { |

