aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2023-06-13 20:09:23 +0200
committerFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2023-06-13 20:17:50 +0200
commita54c71ccc24874ce79019b51150b3a00b7c785cd (patch)
tree0680bb81f4b7fafdadb5257d0c3601ee8a441a29 /gcc
parentc1691509e5a8875f36c068a5ea101bf13f140948 (diff)
downloadgcc-a54c71ccc24874ce79019b51150b3a00b7c785cd.zip
gcc-a54c71ccc24874ce79019b51150b3a00b7c785cd.tar.gz
gcc-a54c71ccc24874ce79019b51150b3a00b7c785cd.tar.bz2
Fortran: add DATA statement testcase
gcc/testsuite/ * gfortran.dg/data_array_7.f90: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gfortran.dg/data_array_7.f9026
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/data_array_7.f90 b/gcc/testsuite/gfortran.dg/data_array_7.f90
new file mode 100644
index 0000000..56cd6ad
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/data_array_7.f90
@@ -0,0 +1,26 @@
+! { dg-do run }
+!
+! Checking for "The new features of Fortran 2008" feature 5.6
+
+ implicit none
+ integer :: a(6)
+ integer :: b(6)
+ integer(kind=4) :: i
+
+ ! Fortran 2008: Subscripts in a data statement can be any constant expression
+ data a(kind("foo")) / 1 /
+ data a(sum([1, 2, 3]) / 3) / 2 /
+ data a(len("foo")) / 3 /
+ data a(kind(i)) / 4 /
+ data a(int(7.0 * atan(1.0)):6) / 5, 6 /
+
+ ! Fortran 2008: nested implied-do limits in a data statement can be any constant expression
+ data (b(i), i = kind("foo"), sum([-1, 1, 2])) / 1, 2 /
+ data (b(i), i = len("foo"), kind(i)) / 3, 4 /
+ data (b(i), i = int(7.0 * atan(1.0)), 6) / 5, 6 /
+
+ ! Check that data was correctly filled
+ if (any(a /= [(i, i = 1, 6)])) stop 1
+ if (any(b /= [(i, i = 1, 6)])) stop 1
+
+end