OSDN Git Service

* gfortran.fortran-torture/execute/where_10.f90: New test case.
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Feb 2006 18:11:30 +0000 (18:11 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Feb 2006 18:11:30 +0000 (18:11 +0000)
* gfortran.fortran-torture/execute/where_11.f90: Likewise.
* gfortran.fortran-torture/execute/where_12.f90: Likewise.
* gfortran.fortran-torture/execute/where_13.f90: Likewise.
* gfortran.fortran-torture/execute/where_14.f90: Likewise.
* gfortran.fortran-torture/execute/where_15.f90: Likewise.
* gfortran.fortran-torture/execute/where_16.f90: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111204 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.fortran-torture/execute/where_10.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.fortran-torture/execute/where_11.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.fortran-torture/execute/where_12.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.fortran-torture/execute/where_13.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.fortran-torture/execute/where_14.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.fortran-torture/execute/where_15.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.fortran-torture/execute/where_16.f90 [new file with mode: 0644]

index cb41751..78d593d 100644 (file)
@@ -1,3 +1,13 @@
+2006-02-16  Roger Sayle  <roger@eyesopen.com>
+
+       * gfortran.fortran-torture/execute/where_10.f90: New test case.
+       * gfortran.fortran-torture/execute/where_11.f90: Likewise.
+       * gfortran.fortran-torture/execute/where_12.f90: Likewise.
+       * gfortran.fortran-torture/execute/where_13.f90: Likewise.
+       * gfortran.fortran-torture/execute/where_14.f90: Likewise.
+       * gfortran.fortran-torture/execute/where_15.f90: Likewise.
+       * gfortran.fortran-torture/execute/where_16.f90: Likewise.
+
 2006-02-16  Jeff Law  <law@redhat.com>
 
        * gcc.dg/tree-ssa/vrp24.c: Update expected output.
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_10.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_10.f90
new file mode 100644 (file)
index 0000000..c5a85ce
--- /dev/null
@@ -0,0 +1,23 @@
+! Check whether conditional ELSEWHEREs work
+! (with final unconditional ELSEWHERE)
+program where_10
+   integer :: a(5)
+   integer :: b(5)
+
+   a = (/1, 2, 3, 4, 5/)
+   b = (/0, 0, 0, 0, 0/)
+   where (a .eq. 1)
+     b = 3
+   elsewhere (a .eq. 2)
+     b = 1
+   elsewhere (a .eq. 3)
+     b = 4
+   elsewhere (a .eq. 4)
+     b = 1
+   elsewhere
+     b = 5
+   endwhere
+   if (any (b .ne. (/3, 1, 4, 1, 5/))) &
+     call abort
+end program
+
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_11.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_11.f90
new file mode 100644 (file)
index 0000000..f2eb69f
--- /dev/null
@@ -0,0 +1,23 @@
+! Check whether conditional ELSEWHEREs work
+! (without unconditional ELSEWHERE)
+program where_11
+   integer :: a(5)
+   integer :: b(5)
+
+   a = (/1, 2, 3, 4, 5/)
+   b = (/0, 0, 0, 0, 0/)
+   where (a .eq. 1)
+     b = 3
+   elsewhere (a .eq. 2)
+     b = 1
+   elsewhere (a .eq. 3)
+     b = 4
+   elsewhere (a .eq. 4)
+     b = 1
+   elsewhere (a .eq. 5)
+     b = 5
+   endwhere
+   if (any (b .ne. (/3, 1, 4, 1, 5/))) &
+     call abort
+end program
+
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_12.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_12.f90
new file mode 100644 (file)
index 0000000..c95dc97
--- /dev/null
@@ -0,0 +1,9 @@
+! Check empty WHEREs work
+program where_12
+   integer :: a(5)
+
+   a = (/1, 2, 3, 4, 5/)
+   where (a .eq. 1)
+   endwhere
+end program
+
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_13.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_13.f90
new file mode 100644 (file)
index 0000000..ce8d582
--- /dev/null
@@ -0,0 +1,10 @@
+! Check empty WHERE and empty ELSEWHERE works
+program where_13
+   integer :: a(5)
+
+   a = (/1, 2, 3, 4, 5/)
+   where (a .eq. 2)
+   elsewhere
+   endwhere
+end program
+
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_14.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_14.f90
new file mode 100644 (file)
index 0000000..640bdf5
--- /dev/null
@@ -0,0 +1,15 @@
+! Check whether an empty ELSEWHERE works
+program where_14
+   integer :: a(5)
+   integer :: b(5)
+
+   a = (/1, 2, 3, 4, 5/)
+   b = (/0, 0, 0, 0, 0/)
+   where (a .eq. 1)
+     b = 3
+   elsewhere
+   endwhere
+   if (any (b .ne. (/3, 0, 0, 0, 0/))) &
+     call abort
+end program
+
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_15.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_15.f90
new file mode 100644 (file)
index 0000000..ffbebb7
--- /dev/null
@@ -0,0 +1,15 @@
+! Check whether an empty WHERE works
+program where_15
+   integer :: a(5)
+   integer :: b(5)
+
+   a = (/1, 2, 3, 4, 5/)
+   b = (/0, 0, 0, 0, 0/)
+   where (a .eq. 1)
+   elsewhere
+     b = 2
+   endwhere
+   if (any (b .ne. (/0, 2, 2, 2, 2/))) &
+     call abort
+end program
+
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/where_16.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/where_16.f90
new file mode 100644 (file)
index 0000000..19f012a
--- /dev/null
@@ -0,0 +1,39 @@
+! Check whether nested WHEREs work
+program where_16
+   integer :: a(9)
+   integer :: b(9)
+   integer :: c(9)
+
+   a = (/0, 0, 0, 1, 1, 1, 2, 2, 2/)
+   b = (/0, 1, 2, 0, 1, 2, 0, 1, 2/)
+   c = (/0, 0, 0, 0, 0, 0, 0, 0, 0/)
+
+   where (a .eq. 0)
+     where (b .eq. 0)
+       c = 1
+     else where (b .eq. 1)
+       c = 2
+     else where
+       c = 3
+     endwhere
+   elsewhere (a .eq. 1)
+     where (b .eq. 0)
+       c = 4
+     else where (b .eq. 1)
+       c = 5
+     else where
+       c = 6
+     endwhere
+   elsewhere
+     where (b .eq. 0)
+       c = 7
+     else where (b .eq. 1)
+       c = 8
+     else where
+       c = 9
+     endwhere
+   endwhere
+   if (any (c .ne. (/1, 2, 3, 4, 5, 6, 7, 8, 9/))) &
+     call abort
+end program
+