! { dg-options "-Os -fno-asynchronous-unwind-tables" }
! { dg-do run }

      real r1(5), r2(5), r3(5)
      real s1(2), s2(2), s3(2)
      double precision d1, d2, d3
      equivalence (r3, s3(2))
      equivalence (d3, r3(2))
      s1(1) = 1.
      s3(1) = 3.
      r3(1) = 3.
      d3 = 30.
      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)
      real r1(5), r2(5), r3(5)
      real s1(2), s2(2), s3(2)
      double precision d1, d2, d3
      if (s1(1) .ne. 1.) call abort
      if (s3(1) .ne. 3.) call abort
      if (r3(1) .ne. 3.) call abort
      if (d3 .ne. 30.) call abort
      if (i3 .ne. 3) call abort
      end
