summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/array_function_1.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/array_function_1.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/array_function_1.f9027
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/array_function_1.f90 b/gcc/testsuite/gfortran.dg/array_function_1.f90
new file mode 100644
index 000000000..281ae88b8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/array_function_1.f90
@@ -0,0 +1,27 @@
+! { dg-do run }
+! PR fortran/30720
+program array_function_1
+ integer :: a(5), b, l, u
+ l = 4
+ u = 2
+
+ a = (/ 1, 2, 3, 4, 5 /)
+
+ b = f(a(l:u) - 2)
+ if (b /= 0) call abort
+
+ b = f(a(4:2) - 2)
+ if (b /= 0) call abort
+
+ b = f(a(u:l) - 2)
+ if (b /= 3) call abort
+
+ b = f(a(2:4) - 2)
+ if (b /= 3) call abort
+
+ contains
+ integer function f(x)
+ integer, dimension(:), intent(in) :: x
+ f = sum(x)
+ end function
+end program