diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90 b/gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90 new file mode 100644 index 000000000..c482ea0f3 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/allocate_zerosize_1.f90 @@ -0,0 +1,31 @@ +! { dg-do run } +program main + implicit none + real, allocatable :: a(:), b(:,:) + integer :: n,m + character (len=2) :: one, two + + one = ' 1' + two = ' 2' + + allocate (a(1:-1)) + if (size(a) /= 0) call abort + deallocate (a) + + allocate (b(1:-1,0:10)) + if (size(b) /= 0) call abort + deallocate (b) + + ! Use variables for array bounds. The internal reads + ! are there to hide fact that these are actually constant. + + read (unit=one, fmt='(I2)') n + allocate (a(n:-1)) + if (size(a) /= 0) call abort + deallocate (a) + + read (unit=two, fmt='(I2)') m + allocate (b(1:3, m:0)) + if (size(b) /= 0) call abort + deallocate (b) +end program main |