diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/array_constructor_7.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/array_constructor_7.f90 | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/array_constructor_7.f90 b/gcc/testsuite/gfortran.dg/array_constructor_7.f90 new file mode 100644 index 000000000..65ec26c87 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_constructor_7.f90 @@ -0,0 +1,26 @@ +! Like array_constructor_6.f90, but test for nested iterators. +! { dg-do run } +program main + implicit none + call build (17) +contains + subroutine build (order) + integer :: order, i, j + + call test (order, (/ (((j + 100) * i, j = 1, i), i = 1, order) /)) + call test (9, (/ (((j + 100) * i, j = 1, i), i = 1, 9) /)) + call test (3, (/ 101, 202, 204, 303, 306, 309 /)) + end subroutine build + + subroutine test (order, values) + integer, dimension (:) :: values + integer :: order, i, j + + if (size (values, dim = 1) .ne. order * (order + 1) / 2) call abort + do i = 1, order + do j = 1, i + if (values (i * (i - 1) / 2 + j) .ne. (j + 100) * i) call abort + end do + end do + end subroutine test +end program main |