26 lines
636 B
Fortran
26 lines
636 B
Fortran
! { dg-do run }
|
|
! Tests the fix for PR27269 and PR27xxx.
|
|
! The former caused a segfault in trying to process
|
|
! module b, with an unused equivalence in a. The latter
|
|
! produced an assembler error due to multiple declarations
|
|
! for a module equivalence, when one of the variables was
|
|
! initialized, as M in module a.
|
|
!
|
|
module a
|
|
integer, parameter :: dp = selected_real_kind (10)
|
|
real(dp) :: reM, M = 1.77d0
|
|
equivalence (M, reM)
|
|
end module a
|
|
|
|
module b
|
|
use a, only : dp
|
|
end module b
|
|
|
|
use a
|
|
use b
|
|
if (reM .ne. 1.77d0) call abort ()
|
|
reM = 0.57d1
|
|
if (M .ne. 0.57d1) call abort ()
|
|
end
|
|
! { dg-final { cleanup-modules "a b" } }
|