aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_size.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_size.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_size.f9037
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_size.f90 b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_size.f90
new file mode 100644
index 000000000..729c55f22
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_size.f90
@@ -0,0 +1,37 @@
+! Program to test the SIZE intrinsics
+program testsize
+ implicit none
+ real, dimension(:, :), allocatable :: a
+ integer, dimension(5) :: j
+ integer, dimension(2, 3) :: b
+ integer i
+
+ if (size (b(2, :), 1) .ne. 3) call abort
+
+ allocate (a(3:8, 5:7))
+
+ ! With one parameter
+ if (size(a) .ne. 18) call abort
+
+ ! With two parameters, assigning to an array
+ j = size(a, 1)
+ if (any (j .ne. (/6, 6, 6, 6, 6/))) call abort
+
+ ! With a variable second parameter
+ i = 2
+ i = size(a, i)
+ if (i .ne. 3) call abort
+
+ call test(a)
+contains
+
+subroutine test (a)
+ real, dimension (1:, 1:) :: a
+ integer i
+
+ i = 2
+ if ((size(a, 1) .ne. 6) .or. (size(a, i) .ne. 3)) call abort
+ if (size (a) .ne. 18 ) call abort
+end subroutine
+end program
+