re PR fortran/77420 (gfortran and equivalence produces internal compiler error)

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.

From-SVN: r240063
This commit is contained in:
Steven G. Kargl 2016-09-10 00:52:45 +00:00
parent c87656b4d3
commit 352c2128b4
3 changed files with 31 additions and 1 deletions

View File

@ -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

View File

@ -1,3 +1,10 @@
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 Martin Sebor <msebor@redhat.com>
PR c/77520
@ -5,6 +12,11 @@
* gcc.dg/pr77520.c: New test.
* gcc.dg/pr77521.c: New test.
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77420
* gfortran.dg/pr77420.f90: New test.
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77506

View File

@ -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