1* g77 0.5.23 and previous had bugs involving too little space
2* allocated for EQUIVALENCE and COMMON areas needing initial
3* padding to meet alignment requirements of the system.
4
5      call subr
6      end
7
8      subroutine subr
9      implicit none
10
11      real r1(5), r2(5), r3(5)
12      real s1(2), s2(2), s3(2)
13      double precision d1, d2, d3
14      integer i1, i2, i3
15      equivalence (d1, r1(2))
16      equivalence (r1, s1(2))
17      equivalence (d2, r2(2))
18      equivalence (r2, s2(2))
19      equivalence (d3, r3(2))
20      equivalence (r3, s3(2))
21
22      s1(1) = 1.
23      r1(1) = 1.
24      d1 = 10.
25      r1(4) = 1.
26      r1(5) = 1.
27      i1 = 1
28      s2(1) = 2.
29      r2(1) = 2.
30      d2 = 20.
31      r2(4) = 2.
32      r2(5) = 2.
33      i2 = 2
34      s3(1) = 3.
35      r3(1) = 3.
36      d3 = 30.
37      r3(4) = 3.
38      r3(5) = 3.
39      i3 = 3
40
41      call x (s1, r1, d1, i1, s2, r2, d2, i2, s3, r3, d3, i3)
42
43      end
44
45      subroutine x (s1, r1, d1, i1, s2, r2, d2, i2, s3, r3, d3, i3)
46      implicit none
47
48      real r1(5), r2(5), r3(5)
49      real s1(2), s2(2), s3(2)
50      double precision d1, d2, d3
51      integer i1, i2, i3
52
53      if (s1(1) .ne. 1.) call abort
54      if (r1(1) .ne. 1.) call abort
55      if (d1 .ne. 10.) call abort
56      if (r1(4) .ne. 1.) call abort
57      if (r1(5) .ne. 1.) call abort
58      if (i1 .ne. 1) call abort
59      if (s2(1) .ne. 2.) call abort
60      if (r2(1) .ne. 2.) call abort
61      if (d2 .ne. 20.) call abort
62      if (r2(4) .ne. 2.) call abort
63      if (r2(5) .ne. 2.) call abort
64      if (i2 .ne. 2) call abort
65      if (s3(1) .ne. 3.) call abort
66      if (r3(1) .ne. 3.) call abort
67      if (d3 .ne. 30.) call abort
68      if (r3(4) .ne. 3.) call abort
69      if (r3(5) .ne. 3.) call abort
70      if (i3 .ne. 3) call abort
71
72      end
73