I've reverted my previous fix for PR fortran/77420. It was causing a regression that could, in principle, effect a significant nubmer of gfortran users.
2016-09-13 Steven G. Kargl <ka...@gcc.gnu.org> PR fortran/77420 * module.c (load_equiv): Revert revision 240063. 2016-09-13 Steven G. Kargl <ka...@gcc.gnu.org> PR fortran/77420 * gfortran.dg/pr77420.f90: Revert revision 240063 by removing test. Index: gcc/fortran/module.c =================================================================== --- gcc/fortran/module.c (revision 240117) +++ gcc/fortran/module.c (working copy) @@ -4647,7 +4647,7 @@ load_equiv (void) } /* Check for duplicate equivalences being loaded from different modules */ - duplicate = gfc_current_ns->equiv ? false:true; + duplicate = false; for (equiv = gfc_current_ns->equiv; equiv; equiv = equiv->next) { if (equiv->module && head->module Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (revision 240117) +++ gcc/testsuite/ChangeLog (working copy) @@ -84,13 +84,6 @@ PR rtl-optimization/77289 * gcc.target/powerpc/pr77289.c: New test. -2016-09-09 Steven G. Kargl <ka...@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 Martin Sebor <mse...@redhat.com> PR c/77520 @@ -100,11 +93,6 @@ 2016-09-09 Steven G. Kargl <ka...@gcc.gnu.org> - PR fortran/77420 - * gfortran.dg/pr77420.f90: New test. - -2016-09-09 Steven G. Kargl <ka...@gcc.gnu.org> - PR fortran/77506 * gfortran.dg/pr77506.f90: New test. Index: gcc/testsuite/gfortran.dg/pr77420.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr77420.f90 (revision 240117) +++ gcc/testsuite/gfortran.dg/pr77420.f90 (nonexistent) @@ -1,18 +0,0 @@ -! { 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