summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/execute/arrayarg2.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.fortran-torture/execute/arrayarg2.f90')
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/arrayarg2.f9021
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/arrayarg2.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/arrayarg2.f90
new file mode 100644
index 000000000..9cb5b613d
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/arrayarg2.f90
@@ -0,0 +1,21 @@
+! Program to test array arguments which depend on other array arguments
+program arrayarg2
+ integer, dimension(5) :: a, b
+
+ a = (/1, 2, 3, 4, 5/)
+ b = (/2, 3, 4, 5, 6/)
+
+ call test (a, b)
+
+ if (any (b .ne. (/4, 7, 10, 13, 16/))) call abort
+contains
+subroutine test (x1, x2)
+ implicit none
+ integer, dimension(1:), intent(in) :: x1
+ integer, dimension(1:), intent(inout) :: x2
+ integer, dimension(1:size(x1)) :: x3
+
+ x3 = x1 * 2
+ x2 = x2 + x3
+end subroutine test
+end program