This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Committed] PR fortran/77420


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]