https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77420
Bug ID: 77420 Summary: gfortran and equivalence produces internal compiler error Product: gcc Version: 5.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: m...@rolf-sander.net Target Milestone: --- Created attachment 39523 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39523&action=edit example code that shows the bug Hello, I encountered an internal compiler error with gfortran (Ubuntu 5.4.0-6ubuntu1~16.04.2). I was able to boil down the problem to the following simple code: ----------- 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 ----------- AFAICS, this code is correct Fortran90. The private arrays in MODULE test_equivalence should be separate from those in MODULE mymodule. However, it seems that gfortran turns array1 into a public variable because of the EQUIVALENCE statement. Asking a colleague, I was told that the bug also occurs in version 6.2.0 but not in 4.3.4, 4.8.1, and 4.9.4. The error message was: ----------- gfortran gfortran_test_equivalence.f90 gfortran_test_equivalence.f90:14:0: PROGRAM test 1 internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. ----------- Asking in fort...@gcc.gnu.org, the bug was confirmed and I was told that reverting the revision 224159 does fix the problem. Best regards Rolf