* gfortran.dg/reduction.f90: Add checks with complex arguments.
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
Sun, 22 Aug 2004 12:12:04 +0000 (14:12 +0200)
committerTobias Schlüter <tobi@gcc.gnu.org>
Sun, 22 Aug 2004 12:12:04 +0000 (14:12 +0200)
From-SVN: r86378

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/reduction.f90

index de614afc6de76bc13e4231d2f666ae8eb6833940..0bf7dfb0af53299420ee9e8b8c79873a3cb7e268 100644 (file)
@@ -1,3 +1,7 @@
+2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * gfortran.dg/reduction.f90: Add checks with complex arguments.
+
 2004-08-21  Bud Davis  <bdavis9659@comcast.net>
 
        PR 16908
index f98eb29231f6b150074affd3a57d23e358d43752..82193542ff882f8d65ad04744177f742d07491c7 100644 (file)
@@ -9,6 +9,7 @@ program reduction_mask
   integer, parameter :: res(4*9) = (/ 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, &
        1, 1, 1, 1, 1, 6, 6, 6, 2, 2, 2, 2, 2, 2, 6, 6, 6, 3, 3, 3, 3, 3, 3 /)
   integer :: val(4*9)
+  complex :: cval(2*9), cin(3)
   
   equal = (/ .true., .true., .false. /)
   
@@ -55,4 +56,30 @@ program reduction_mask
   val(36) = sum((/ 1, 2, 3 /), mask=equal, dim=1)
   
   if (any (val /= res)) call abort
+
+  ! Tests for complex arguments. These were broken by the original fix.
+
+  cin = cmplx((/1,2,3/))
+
+  cval(1) = product(cin)
+  cval(2) = product(cin, 1)
+  cval(3) = product(cin, dim=1)
+  cval(4) = product(cin, equal)
+  cval(5) = product(cin, mask=equal)
+  cval(6) = product(cin, 1, equal)
+  cval(7) = product(cin, 1, mask=equal)
+  cval(8) = product(cin, dim=1, mask=equal)
+  cval(9) = product(cin, mask=equal, dim=1)
+       
+  cval(10) = sum(cin)
+  cval(11) = sum(cin, 1)
+  cval(12) = sum(cin, dim=1)
+  cval(13) = sum(cin, equal)
+  cval(14) = sum(cin, mask=equal)
+  cval(15) = sum(cin, 1, equal)
+  cval(16) = sum(cin, 1, mask=equal)
+  cval(17) = sum(cin, dim=1, mask=equal)
+  cval(18) = sum(cin, mask=equal, dim=1)
+
+  if (any (cval /= cmplx(res(19:36)))) call abort
 end program reduction_mask