From: Tobias Schlüter Date: Wed, 15 Sep 2004 13:12:52 +0000 (+0000) Subject: re PR fortran/16485 (Private subroutines from different modules collide during linking.) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4672f86ad056e95dbdc570901efd8270056560a9;p=gcc.git re PR fortran/16485 (Private subroutines from different modules collide during linking.) 2004-09-15 Tobias Schlueter PR fortran/16485 * module.c (write_symbol): Don't fill in module name here. (write_symbol0): Fill in here instead. testsuite/ * gfortran.dg/same_name_1.f90: New test. From-SVN: r87551 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1df48e16749..4f0c3a0e3f7 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2004-09-15 Tobias Schlueter + + PR fortran/16485 + * module.c (write_symbol): Don't fill in module name here. + (write_symbol0): Fill in here instead. + 2004-09-14 Kazu Hirata * data.c, decl.c, f95-lang.c, gfortran.h, match.c, diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 5fabcb0564c..c5a94d21c32 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -3198,9 +3198,6 @@ write_symbol (int n, gfc_symbol * sym) mio_integer (&n); mio_internal_string (sym->name); - if (sym->module[0] == '\0') - strcpy (sym->module, module_name); - mio_internal_string (sym->module); mio_pointer_ref (&sym->ns); @@ -3226,6 +3223,8 @@ write_symbol0 (gfc_symtree * st) write_symbol0 (st->right); sym = st->n.sym; + if (sym->module[0] == '\0') + strcpy (sym->module, module_name); if (sym->attr.flavor == FL_PROCEDURE && sym->attr.generic && !sym->attr.subroutine && !sym->attr.function) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cf289f18cb1..0cf8e980439 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-15 Tobias Schlueter + + PR fortran/16485 + * gfortran.dg/same_name_1.f90: New test. + 2004-09-15 Diego Novillo * gcc.c-torture/execute/pr17252.c: Fix thinko. Don't diff --git a/gcc/testsuite/gfortran.dg/same_name_1.f90 b/gcc/testsuite/gfortran.dg/same_name_1.f90 new file mode 100644 index 00000000000..cbeb875e36b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/same_name_1.f90 @@ -0,0 +1,13 @@ +! { dg-do assemble } +module n +private u +contains + subroutine u + end subroutine u +end module n +module m + private :: u +contains + subroutine u + end subroutine u +end module m