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