PR rtl-optimization/82913
[official-gcc.git] / gcc / testsuite / gfortran.fortran-torture / execute / equiv_4.f90
blob9c232786dbb19c68fad387cfda3bda67d05476af
1 subroutine test1
2 character*8 c
3 character*2 d, f
4 dimension d(2), f(2)
5 character*4 e
6 equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4))
7 equivalence (c(6:6), f(2)(:))
8 d(1)='AB'
9 c='abcdefgh'
10 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
11 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
12 end subroutine test1
13 subroutine test2
14 equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4))
15 equivalence (c(6:6), f(2)(1:))
16 character*8 c
17 character*2 d, f
18 dimension d(2), f(2)
19 character*4 e
20 d(1)='AB'
21 c='abcdefgh'
22 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
23 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
24 end subroutine test2
25 subroutine test3
26 character*8 c
27 character*2 d, f
28 character*4 e
29 equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4))
30 equivalence (c(6:6), f(2)(:1))
31 dimension d(2), f(2)
32 d(1)='AB'
33 c='abcdefgh'
34 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
35 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
36 end subroutine test3
37 subroutine test4
38 dimension d(2), f(2)
39 equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4))
40 equivalence (c(6:6), f(2)(1:2))
41 character*8 c
42 character*2 d, f
43 character*4 e
44 d(1)='AB'
45 c='abcdefgh'
46 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
47 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
48 end subroutine test4
49 program main
50 call test1
51 call test2
52 call test3
53 call test4
54 end program main