diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/allocate_with_source_9.f08')
-rw-r--r-- | gcc/testsuite/gfortran.dg/allocate_with_source_9.f08 | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/allocate_with_source_9.f08 b/gcc/testsuite/gfortran.dg/allocate_with_source_9.f08 new file mode 100644 index 00000000000..aa7cb476879 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/allocate_with_source_9.f08 @@ -0,0 +1,29 @@ +! { dg-do run } +! +! Contributed by Thomas Koenig <tkoenig@gcc.gnu.org>, +! Andre Vehreschild <vehre@gcc.gnu.org> + +program main + + type T + integer, allocatable :: acc(:) + end type + + integer :: n, lb, ub + integer :: vec(9) + type(T) :: o1, o2 + vec = [(i, i= 1, 9)] + n = 42 + lb = 7 + ub = lb + 2 + allocate(o1%acc, source=vec) + allocate(o2%acc, source=o1%acc(lb:ub)) + if (any (o2%acc /= [7, 8, 9])) call abort() + block + real, dimension(0:n) :: a + real, dimension(:), allocatable :: c + call random_number(a) + allocate(c,source=a(:)) + if (any (abs(a - c) > 1E-6)) call abort() + end block +end program main |