! { dg-do run } ! ! Check whether registering allocatable coarrays works ! type position real :: x, y, z end type position integer, allocatable :: a[:] type(position), allocatable :: p[:] allocate(a[*]) a = 7 allocate(p[*]) p%x = 11 p%y = 13 p%z = 15 if (a /= 7) call abort() a = 88 if (a /= 88) call abort() if (p%x /= 11) call abort() p%x = 17 if (p%x /= 17) call abort() block integer, allocatable :: b[:] allocate(b[*]) b = 8494 if (b /= 8494) call abort() end block if (a /= 88) call abort() call test () end subroutine test() type velocity real :: x, y, z end type velocity real, allocatable :: z[:] type(velocity), allocatable :: v[:] allocate(z[*]) z = sqrt(2.0) allocate(v[*]) v%x = 21 v%y = 23 v%z = 25 if (z /= sqrt(2.0)) call abort() if (v%x /= 21) call abort() end subroutine test