That's probably the last patch of this kind for a while.
By using formal_ns, the namespace is freed when the main symbol is freed. Committed as Rev. Tobias
Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 190737) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,8 @@ +2012-08-28 Tobias Burnus <bur...@net-b.de> + + PR fortran/54384 + * symbol.c (gfc_copy_formal_args): Set also sym->formal_ns. + 2012-08-27 Tobias Burnus <bur...@net-b.de> PR fortran/54384 Index: gcc/fortran/symbol.c =================================================================== --- gcc/fortran/symbol.c (Revision 190737) +++ gcc/fortran/symbol.c (Arbeitskopie) @@ -4103,6 +4103,7 @@ of the formal args). */ gfc_current_ns = gfc_get_namespace (parent_ns, 0); gfc_current_ns->proc_name = dest; + dest->formal_ns = gfc_current_ns; for (curr_arg = src->formal; curr_arg; curr_arg = curr_arg->next) {