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