2007-11-29 Steven G. Kargl <kargls@comcast.net>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Nov 2007 04:18:05 +0000 (04:18 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Nov 2007 04:18:05 +0000 (04:18 +0000)
PR fortran/34230
* gfortran.dg/real_const_3.f90: Fix up for new range-check handling.

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

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/gamma_5.f90
gcc/testsuite/gfortran.dg/real_const_3.f90

index 4a77150..50468f9 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-29  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/34230
+       * gfortran.dg/real_const_3.f90: Fix up for new range-check handling.
+
 2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
 
        PR tree-optimization/34244
index 273b970..d9cb358 100644 (file)
@@ -1,5 +1,4 @@
 ! { dg-do run }
-! { dg-xfail-if "" { "*-*-freebsd*" } { "*" }  { "" } }
 ! PR 33683 - we used to pick up the wrong gamma function
 ! from the library on some systems.
 program main
index d6b2a96..0a2efcf 100644 (file)
@@ -3,39 +3,52 @@
 ! PR19310 and PR19904, allow disabling range check during compile.
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program main
+  character(len=80) str
   real, parameter :: zero=0, nan=0/zero
   complex :: z = (-0.1,-2.2)/(0.0,0.0)
   complex :: z2 = (0.1,1)/0
-  complex :: z3 = (1e300, -2e-200)/1234e-325
-  complex :: z4 = (1e-300, -2e-200)/1234e325
+  complex :: z3 = (1e35, -2e3)/1.234e-37
+  complex :: z4 = (1e-35, -2e-35)/1234e34
   real :: a
   a = exp(1000.0)
   b = 1/exp(1000.0)
-  print *, a
-  print *, b
-  print *, -1.0/b
-  print *, b/0.0
-  print *, 0.0/0.0
-  print *, 1.0/-0.0
-  print *, -2.0/0.0
-  print *, 3.0/0.0
-  print *, nan
-  print *, z
-  print *, z2
-  print *, z3
-  print *, z4
+
+  write(str,*) a
+  if (trim(adjustl(str)) .ne. '+Infinity') call abort
+
+  if (b .ne. 0.) call abort
+
+  write(str,*) -1.0/b
+  if (trim(adjustl(str)) .ne. '-Infinity') call abort
+
+  write(str,*) b/0.0
+  if (trim(adjustl(str)) .ne. 'NaN') call abort
+
+  write(str,*) 0.0/0.0
+  if (trim(adjustl(str)) .ne. 'NaN') call abort
+
+  write(str,*) 1.0/-0.
+  if (trim(adjustl(str)) .ne. '-Infinity') call abort
+
+  write(str,*) -2.0/0.
+  if (trim(adjustl(str)) .ne. '-Infinity') call abort
+
+  write(str,*) 3.0/0.
+  if (trim(adjustl(str)) .ne. '+Infinity') call abort
+
+  write(str,*)  nan
+  if (trim(adjustl(str)) .ne. 'NaN') call abort
+
+  write(str,*) z
+  if (trim(adjustl(str)) .ne. '(            NaN,            NaN)') call abort
+
+  write(str,*) z2
+  if (trim(adjustl(str)) .ne. '(            NaN,            NaN)') call abort
+
+  write(str,*) z3
+  if (trim(adjustl(str)) .ne. '(      +Infinity,      -Infinity)') call abort
+
+  write(str,*) z4
+  if (trim(adjustl(str)) .ne. '(  0.0000000    , -0.0000000    )') call abort
 
 end program main
-!{ dg-output "      \\+Infinity(\n|\r\n|\r)" }
-!{ dg-output "   0.0000000    (\n|\r\n|\r)" }
-!{ dg-output "       -Infinity(\n|\r\n|\r)" }
-!{ dg-output "             NaN(\n|\r\n|\r)" }
-!{ dg-output "             NaN(\n|\r\n|\r)" }
-!{ dg-output "       -Infinity(\n|\r\n|\r)" }
-!{ dg-output "       -Infinity(\n|\r\n|\r)" }
-!{ dg-output "       \\+Infinity(\n|\r\n|\r)" }
-!{ dg-output "             NaN(\n|\r\n|\r)" }
-!{ dg-output " \\(            NaN,            NaN\\)(\n|\r\n|\r)" }
-!{ dg-output " \\(            NaN,            NaN\\)(\n|\r\n|\r)" }
-!{ dg-output " \\(      \\+Infinity,      -Infinity\\)(\n|\r\n|\r)" }
-!{ dg-output " \\(  0.0000000    , -0.0000000    \\)(\n|\r\n|\r)" }