This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
[Committed] PR fortran/77420
- From: Steve Kargl <sgk at troutmask dot apl dot washington dot edu>
- To: fortran at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Fri, 9 Sep 2016 17:55:50 -0700
- Subject: [Committed] PR fortran/77420
- Authentication-results: sourceware.org; auth=none
- Reply-to: kargl at uw dot edu
I've committed the following patch. It restores gfortran's
behavior prior to my commit r224159 if the current namespace
has an empty equivalent list.
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77420
* module.c (load_equiv): If the current namespace has a list of
equivalence statements, initialize duplicate to false and then
look for duplicates; otherwise, initialize it to true.
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77420
* gfortran.dg/pr77420.f90: New test.
Index: gcc/fortran/module.c
===================================================================
--- gcc/fortran/module.c (revision 240057)
+++ gcc/fortran/module.c (working copy)
@@ -4647,7 +4647,7 @@ load_equiv (void)
}
/* Check for duplicate equivalences being loaded from different modules */
- duplicate = false;
+ duplicate = gfc_current_ns->equiv ? false:true;
for (equiv = gfc_current_ns->equiv; equiv; equiv = equiv->next)
{
if (equiv->module && head->module
Index: gcc/testsuite/gfortran.dg/pr77420.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr77420.f90 (nonexistent)
+++ gcc/testsuite/gfortran.dg/pr77420.f90 (working copy)
@@ -0,0 +1,18 @@
+! { dg-do compile }
+MODULE test_equivalence
+ REAL, PRIVATE, DIMENSION(100) :: array1
+ REAL, PRIVATE, DIMENSION(100) :: array2
+ EQUIVALENCE(array1(1),array2(1))
+END MODULE test_equivalence
+
+MODULE mymodule
+ USE test_equivalence
+ ! declare a local variable with the same name as the (private!)
+ ! variable in module test_equivalence:
+ REAL, DIMENSION(:), ALLOCATABLE :: array1
+END MODULE mymodule
+
+PROGRAM test
+ USE mymodule
+END PROGRAM test
+
--
Steve