1! { dg-do run } 2! { dg-options "-fcoarray=single" } 3! 4! Contributed by Ian Harvey <ian_harvey@bigpond.com> 5! Extended by Andre Vehreschild <vehre@gcc.gnu.org> 6! to test that coarray references in allocate work now 7! PR fortran/67451 8 9 program main 10 implicit none 11 type foo 12 integer :: bar = 99 13 end type 14 class(foo), dimension(:), allocatable :: foobar[:] 15 class(foo), dimension(:), allocatable :: some_local_object 16 allocate(foobar(10)[*]) 17 18 allocate(some_local_object(10), source=foobar) 19 20 if (.not. allocated(foobar)) call abort() 21 if (lbound(foobar, 1) /= 1 .OR. ubound(foobar, 1) /= 10) call abort() 22 if (.not. allocated(some_local_object)) call abort() 23 if (any(some_local_object(:)%bar /= [99, 99, 99, 99, 99, 99, 99, 99, 99, 99])) call abort() 24 25 deallocate(some_local_object) 26 deallocate(foobar) 27 end program 28 29