summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/module_equivalence_5.f90
blob: de1d5043d79e56967920a0d25b4333338bfffec5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
! { dg-do run }
!
! Fixes PR37787 where the EQUIVALENCE between QLA1 and QLA2 wasn't recognized
! in the dependency checking because the compiler was looking in the wrong name
! space.
!
! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
!
module stuff
  integer, parameter :: r4_kv = 4
contains

  SUBROUTINE CF0004
!  COPYRIGHT 1999   SPACKMAN & HENDRICKSON, INC.
    REAL(R4_KV), dimension (10) :: QLA1, QLA2, QLA3, &
                                   QCA = (/(i, i= 1, 10)/)
    EQUIVALENCE (QLA1, QLA2)
    QLA1 = QCA
    QLA3 = QCA
    QLA3( 2:10:3) = QCA ( 1:5:2) + 1
    QLA1( 2:10:3) = QLA2( 1:5:2) + 1  !failed because of dependency
    if (any (qla1 .ne. qla3)) call abort
  END SUBROUTINE
end module

program try_cf004
  use stuff
  nf1 = 1
  nf2 = 2
  call cf0004
end

! { dg-final { cleanup-modules "stuff" } }