https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68652

            Bug ID: 68652
           Summary: gamma function hangs on some arguments, returns NaN on
                    other ones
           Product: gcc
           Version: 4.9.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: arbautjc at gmail dot com
  Target Milestone: ---

This happens with gfortran in MinGW-W64 (precisely
x86_64-4.9.3-release-win32-seh-rt_v4-rev1.7z at
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.3/threads-win32/seh/).
So it may be a problem with components external to gfortran. The OS is Windows
7 Pro, 64 bits.

Forgive me if it's not the right place to post the bug report.
Anyway, here is what goes wrong:

program bug
    implicit none
    real(4) :: x, y
    do
        read *, x
        y = gamma(x)
        print *, y
    end do
end program

With real(4), and an argument that is an integer value (in a real variable, of
course):

x=1 to 35: y has a finite real value, no problem
x=36 to 16777218: y is Infinity, as expected
x=16777219 or above: program hangs.
Notice that 2^24=16777216, by the way.

With real(8)
x=1 to 171: finite real
x=172 to 709: Infinity
x=710 or above: NaN, which is not expected (it should be Infinity).

Reply via email to