diff options
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/module.c | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 09155e3..6659ab5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,8 +1,8 @@ -2008-01-06 Tobias Burnus <burnus@net-b.de> +2008-01-06 Paul Thomas <pault@gcc.gnu.org> - PR fortran/34689 - * interface.c (compare_actual_formal): Fix intent(out) check for - function result variables. + PR fortran/34545 + * module.c (load_needed): If the namespace has no proc_name + give it the module symbol. 2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index f3c54b7..20528cb 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -3525,6 +3525,12 @@ load_needed (pointer_info *p) associate_integer_pointer (q, ns); } + /* Use the module sym as 'proc_name' so that gfc_get_symbol_decl + doesn't go pear-shaped if the symbol is used. */ + if (!ns->proc_name) + gfc_find_symbol (p->u.rsym.module, gfc_current_ns, + 1, &ns->proc_name); + sym = gfc_new_symbol (p->u.rsym.true_name, ns); sym->module = gfc_get_string (p->u.rsym.module); strcpy (sym->binding_label, p->u.rsym.binding_label); |