diff options
author | Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> | 2004-11-03 01:54:02 +0100 |
---|---|---|
committer | Tobias Schlüter <tobi@gcc.gnu.org> | 2004-11-03 01:54:02 +0100 |
commit | 36f4d1449ca5c83321e28cdffaf0182373b1e8d7 (patch) | |
tree | a3c2776c7588923bfc84eb7166497f543c81070a /gcc/fortran/module.c | |
parent | fc706639e88a5b87ad5c3f40e286a55612a04237 (diff) | |
download | gcc-36f4d1449ca5c83321e28cdffaf0182373b1e8d7.tar.gz |
re PR fortran/17535 (gfortran with module procedures)
fortran/
PR fortran/17535
PR fortran/17583
PR fortran/17713
* module.c (write_symbol1): Set module_name for dummy arguments.
testsuite/
PR fortran/17535
PR fortran/17583
PR fortran/17713
* gfortran.dg/generic_[123].f90: New testcases.
From-SVN: r90011
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 59400538970..ecc6df18ac7 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); |