diff options
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/match.c | 7 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0528e59..b3567e4 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2009-10-21 Janus Weil <janus@gcc.gnu.org> + + PR fortran/41706 + PR fortran/41766 + * match.c (select_type_set_tmp): Set flavor for temporary. + * resolve.c (resolve_class_typebound_call): Correctly resolve actual + arguments. + 2009-10-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/41706 diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 8721606..0a418c8 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -4047,9 +4047,10 @@ select_type_set_tmp (gfc_typespec *ts) sprintf (name, "tmp$%s", ts->u.derived->name); gfc_get_sym_tree (name, gfc_current_ns, &tmp, false); - tmp->n.sym->ts = *ts; - tmp->n.sym->attr.referenced = 1; - tmp->n.sym->attr.pointer = 1; + gfc_add_type (tmp->n.sym, ts, NULL); + gfc_set_sym_referenced (tmp->n.sym); + gfc_add_pointer (&tmp->n.sym->attr, NULL); + gfc_add_flavor (&tmp->n.sym->attr, FL_VARIABLE, name, NULL); select_type_stack->tmp = tmp; } diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 42b6e76..8e23308 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -5369,7 +5369,7 @@ resolve_class_typebound_call (gfc_code *code) } /* Resolve the argument expressions, */ - resolve_arg_exprs (code->ext.actual); + resolve_arg_exprs (code->expr1->value.compcall.actual); /* Get the data component, which is of the declared type. */ derived = declared->components->ts.u.derived; |