diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/bounds_check_14.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/bounds_check_14.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/bounds_check_14.f90 b/gcc/testsuite/gfortran.dg/bounds_check_14.f90 new file mode 100644 index 000000000..1e5a4aeee --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bounds_check_14.f90 @@ -0,0 +1,31 @@ +! { dg-do run } +! { dg-options "-fbounds-check" } + +program test + integer x(20) + integer, volatile :: n + n = 1 + if (size(x(n:2:-3)) /= 0) call abort + + call ha0020(-3) + call ha0020(-1) +end program test + +subroutine ha0020(mf3) + implicit none + integer xca(2), xda(2), mf3 + + xca = 1 + xda = -1 + + xca(1:2:-1) = xda(1:2:mf3) + + if (any (xca /= 1)) call abort + if (any(xda(1:2:mf3) /= xda(1:0))) call abort + if (size(xda(1:2:mf3)) /= 0) call abort + if (any(shape(xda(1:2:mf3)) /= 0)) call abort + if (any(ubound(xda(1:2:mf3)) /= 0)) call abort + if (ubound(xda(1:2:mf3),1) /= 0) call abort + if (lbound(xda(1:2:mf3),1) /= 1) call abort + +end subroutine |