blob: d3d68781f72e4eafc7e2f12e9bb71592f0490872 [file] [log] [blame]
c { dg-do run }
* g77 0.5.23 and previous had bugs involving too little space
* allocated for EQUIVALENCE and COMMON areas needing initial
* padding to meet alignment requirements of the system.
call subr
end
subroutine subr
implicit none
real r1(5), r2(5), r3(5)
real s1(2), s2(2), s3(2)
double precision d1, d2, d3
integer i1, i2, i3
equivalence (r1, s1(2))
equivalence (d1, r1(2))
equivalence (r2, s2(2))
equivalence (d2, r2(2))
equivalence (r3, s3(2))
equivalence (d3, r3(2))
s1(1) = 1.
r1(1) = 1.
d1 = 10.
r1(4) = 1.
r1(5) = 1.
i1 = 1
s2(1) = 2.
r2(1) = 2.
d2 = 20.
r2(4) = 2.
r2(5) = 2.
i2 = 2
s3(1) = 3.
r3(1) = 3.
d3 = 30.
r3(4) = 3.
r3(5) = 3.
i3 = 3
call x (s1, r1, d1, i1, s2, r2, d2, i2, s3, r3, d3, i3)
end
subroutine x (s1, r1, d1, i1, s2, r2, d2, i2, s3, r3, d3, i3)
implicit none
real r1(5), r2(5), r3(5)
real s1(2), s2(2), s3(2)
double precision d1, d2, d3
integer i1, i2, i3
if (s1(1) .ne. 1.) STOP 1
if (r1(1) .ne. 1.) STOP 2
if (d1 .ne. 10.) STOP 3
if (r1(4) .ne. 1.) STOP 4
if (r1(5) .ne. 1.) STOP 5
if (i1 .ne. 1) STOP 6
if (s2(1) .ne. 2.) STOP 7
if (r2(1) .ne. 2.) STOP 8
if (d2 .ne. 20.) STOP 9
if (r2(4) .ne. 2.) STOP 10
if (r2(5) .ne. 2.) STOP 11
if (i2 .ne. 2) STOP 12
if (s3(1) .ne. 3.) STOP 13
if (r3(1) .ne. 3.) STOP 14
if (d3 .ne. 30.) STOP 15
if (r3(4) .ne. 3.) STOP 16
if (r3(5) .ne. 3.) STOP 17
if (i3 .ne. 3) STOP 18
end