Skip to content
Snippets Groups Projects
Commit b8388bb0 authored by Jerry DeLisle's avatar Jerry DeLisle
Browse files

re PR libfortran/48589 (Invalid G0/G0.d editing for NaN/infinity)

2011-04-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/48589
	* gfortran.dg/fmt_g0_5.f08: New test.

From-SVN: r172503
parent 0b0a0c94
No related branches found
No related tags found
No related merge requests found
2011-04-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/48589
* gfortran.dg/fmt_g0_5.f08: New test.
2011-04-15 Richard Guenther <rguenther@suse.de>
PR testsuite/48286
......
! { dg-do run }
! PR48589 Invalid G0/G0.d editing for NaN/infinity
! Test case by Thomas Henlich
program test_g0_special
call check_all("(g10.3)", "(f10.3)")
call check_all("(g10.3e3)", "(f10.3)")
call check_all("(spg10.3)", "(spf10.3)")
call check_all("(spg10.3e3)", "(spf10.3)")
!print *, "-----------------------------------"
call check_all("(g0)", "(f0.0)")
call check_all("(g0.15)", "(f0.0)")
call check_all("(spg0)", "(spf0.0)")
call check_all("(spg0.15)", "(spf0.0)")
contains
subroutine check_all(fmt1, fmt2)
character(len=*), intent(in) :: fmt1, fmt2
real(8) :: one = 1.0D0, zero = 0.0D0, nan, pinf, minf
nan = zero / zero
pinf = one / zero
minf = -one / zero
call check_equal(fmt1, fmt2, nan)
call check_equal(fmt1, fmt2, pinf)
call check_equal(fmt1, fmt2, minf)
end subroutine check_all
subroutine check_equal(fmt1, fmt2, r)
real(8), intent(in) :: r
character(len=*), intent(in) :: fmt1, fmt2
character(len=80) :: s1, s2
write(s1, fmt1) r
write(s2, fmt2) r
if (s1 /= s2) call abort
!if (s1 /= s2) print "(6a)", trim(fmt1), ": '", trim(s1), "' /= '", trim(s2), "'"
!print "(6a)", trim(fmt1), ": '", trim(s1), "' /= '", trim(s2), "'"
end subroutine check_equal
end program test_g0_special
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment