re PR fortran/83379 (Intermittent failure of min/maxval_char*.f90 test cases)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Mon, 11 Dec 2017 17:57:38 +0000 (17:57 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Mon, 11 Dec 2017 17:57:38 +0000 (17:57 +0000)
2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/83379
* gfortran.dg/minval_char_1.f90: Correct logic for mask
calculation.
* gfortran.dg/minval_char_2.f90: Likewise.
* gfortran.dg/maxval_char_1.f90: Likewise.
* gfortran.dg/maxval_char_2.f90: Likewise.

From-SVN: r255543

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/maxval_char_1.f90
gcc/testsuite/gfortran.dg/maxval_char_2.f90
gcc/testsuite/gfortran.dg/minval_char_1.f90
gcc/testsuite/gfortran.dg/minval_char_2.f90

index c51c2000de0185d08898dc047f216dc7e6d08dca..acd4578f20ec8f8b542ffeb9bc0117e77afa92c7 100644 (file)
@@ -1,3 +1,12 @@
+2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/83379
+       * gfortran.dg/minval_char_1.f90: Correct logic for mask
+       calculation.
+       * gfortran.dg/minval_char_2.f90: Likewise.
+       * gfortran.dg/maxval_char_1.f90: Likewise.
+       * gfortran.dg/maxval_char_2.f90: Likewise.
+
 2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/45689
index 24b5336ca835c79af934c08dbd679fa7807735c9..2e529005ac2e2c891514aa61dfa2b79686ffdce7 100644 (file)
@@ -19,10 +19,10 @@ program main
   res = maxval(a,dim=1)
   if (res /= '00030') call abort
   do
-    call random_number(r)
-    if (count(r>0.2) > 1) exit
+     call random_number(r)
+     v = int(r * 100)
+     if (count (v>20) > 1) exit
   end do
-  v = int(r * 100)
   write (unit=b,fmt='(I5.5)') v
   write (unit=res,fmt='(I5.5)') maxval(v)
   if (res /= maxval(b)) call abort
@@ -31,7 +31,7 @@ program main
   smask = .false.
   if (all_zero /= maxval(b, smask)) call abort
 
-  mask = v < 30
+  mask = v > 20
   write (unit=res,fmt='(I5.5)') maxval(v,mask)
   if (res /= maxval(b, mask)) call abort
   mask = .false.
index 750d18e59a874d5ed4ee1b1b8f1724a9a79ec131..c9ba125c330e6d04ab3ac3b93ce0b61e880b7c55 100644 (file)
@@ -18,9 +18,9 @@ program main
   if (res /= 4_'00030') call abort
   do
      call random_number(r)
-     if (count(r>0.2) > 1) exit
+     v = int(r * 100)
+     if (count(v > 20) > 1) exit
   end do
-   v = int(r * 100)
   write (unit=b,fmt='(I5.5)') v
   write (unit=res,fmt='(I5.5)') maxval(v)
   if (res /= maxval(b)) call abort
@@ -29,7 +29,7 @@ program main
   smask = .false.
   if (all_zero /= maxval(b, smask)) call abort
 
-  mask = v < 30
+  mask = v > 20
   write (unit=res,fmt='(I5.5)') maxval(v,mask)
   if (res /= maxval(b, mask)) call abort
   mask = .false.
index 6ffab4e98ba14daac17f05e05cac0e129d6cb6da..4d2598ea8e4daabdc9e98a866cfb16569b83678c 100644 (file)
@@ -17,10 +17,10 @@ program main
   res = minval(a)
   if (res /= '00026') call abort
   do
-    call random_number(r)
-    if (count(r<0.2) > 1) exit
+     call random_number(r)
+     v = int(r * 100)
+     if (count(v < 30) > 1) exit
   end do
-  v = int(r * 100)
   write (unit=b,fmt='(I5.5)') v
   write (unit=res,fmt='(I5.5)') minval(v)
   if (res /= minval(b)) call abort
index 82661f015aff1dea0fa0cb490493c9e814a8438e..93ea4f6e18ff74b1ce1a06fee7677c873cb10242 100644 (file)
@@ -20,9 +20,9 @@ program main
   if (res /= 4_'00026') call abort
   do
      call random_number(r)
-     if (count(r>0.2) > 1) exit
+     v = int(r * 100)
+     if (count(v<30) > 1) exit
   end do
-  v = int(r * 100)
   write (unit=b,fmt='(I5.5)') v
   write (unit=res,fmt='(I5.5)') minval(v)
   if (res /= minval(b)) call abort