diff options
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/module.c | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2ce462b..da75178c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2004-11-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/17535 + PR fortran/17583 + PR fortran/17713 + * module.c (write_symbol1): Set module_name for dummy arguments. + 2004-11-02 Paul Brook <paul@codesourcery.com> * intrinsic.c (check_intrinsic_standard): Include error locus. diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 5940053..ecc6df1 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -3269,6 +3269,11 @@ write_symbol1 (pointer_info * p) if (p->type != P_SYMBOL || p->u.wsym.state != NEEDS_WRITE) return 0; + /* FIXME: This shouldn't be necessary, but it works around + deficiencies in the module loader or/and symbol handling. */ + if (p->u.wsym.sym->module[0] == '\0' && p->u.wsym.sym->attr.dummy) + strcpy (p->u.wsym.sym->module, module_name); + p->u.wsym.state = WRITTEN; write_symbol (p->integer, p->u.wsym.sym); |