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