re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 1 Sep 2016 21:17:42 +0000 (21:17 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 1 Sep 2016 21:17:42 +0000 (21:17 +0000)
2016-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/77393
* gfortran.dg/fmt_f0_2.f90: Update tests for available kinds.

From-SVN: r239945

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

index e7f5226c7a7fe2db8e043efc2cdb8ed0095b644f..f8640c0b1fac7c529678754a4b76f7b5834a1a04 100644 (file)
@@ -1,3 +1,8 @@
+2016-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/77393
+       * gfortran.dg/fmt_f0_2.f90: Update tests for available kinds.
+
 2016-09-01  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.dg/torture/float128-builtin.c, gcc.dg/torture/float128-floath.c,
index 6e679fcecb858df262d6f997601116c580ed948c..01788fab76eb7e65b27957a6f2b18d935030c319 100644 (file)
@@ -1,15 +1,27 @@
 ! { dg-do run }
 ! PR77393
 program testbigf0 ! Can enormous numbers be printed with F0.0 format?
+  use ISO_FORTRAN_ENV
   implicit none
+  integer i
+  integer, parameter :: j(size(real_kinds)+4)=[REAL_KINDS, [4, 4, 4, 4]]
   character(10000) :: str
-  write(str, "(f0.0)") -huge(1.0) 
-  if (len(trim(str)).lt.41) error stop "FAILED AT LINE 7"
-  write(str, "(f0.0)") -huge(1.0_8)
-  if (len(trim(str)).lt.311) error stop "FAILED AT LINE 9"
-  write(str, "(f0.0)") -huge(1.0_10)
-  if (len(trim(str)).lt.4935) error stop "FAILED AT LINE 11"
-  write(str, "(f0.10)") -huge(1.0_16)
-  if (len(trim(str)).lt.4945) error stop "FAILED AT LINE 13"
+
+  do i=1,size(real_kinds)
+    select case (i)
+    case (1)
+      write(str, "(f0.0)") -huge(real(1.0,kind=j(1)))
+      if (len(trim(str)).lt.41) error stop "FAILED AT LINE 15"
+    case (2)
+      write(str, "(f0.0)") -huge(real(1.0,kind=j(2)))
+      if (len(trim(str)).lt.311) error stop "FAILED AT LINE 19"
+    case (3)
+      write(str, "(f0.0)") -huge(real(1.0,kind=j(3)))
+      if (len(trim(str)).lt.4935) error stop "FAILED AT LINE 23"
+    case (4)
+      write(str, "(f0.10)") -huge(real(1.0,kind=j(4)))
+      if (len(trim(str)).lt.4945) error stop "FAILED AT LINE 27"
+    end select
+  enddo
 end program testbigf0