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

Reply via email to