http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40205


Tobias Burnus <burnus at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|NEW                         |RESOLVED

                 CC|                            |burnus at gcc dot gnu.org

         Resolution|                            |WONTFIX



--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-10-17 
17:10:40 UTC ---

(In reply to comment #0)

>   upper = huge(maxint)

>   lower = upper - 9    ! The 9 can of course be changed

> !$omp parallel do

>   do i = lower, upper



As the Fortran program is nonconforming (even without OpenMP), I close this PR

as WONTFIX.



The reason that the program is nonconforming is the same as the OpenMP issue:

One has "huge(i)+1" which is not representable.



In case of Fortran, the standard effectively mandates that the DO variable "i"

is "upper + 1" after the loop, but that number is not representable if "upper"

is "huge(i)". As it is not representable, the code is nonconforming. See PR

54932 for quotes from the standard.



(For the OpenMP part, one has "<= ubound" which is transformed to "< ubound+1".

That part could be fixed, but why should one bother if the Fortran code itself

is already invalid.)

Reply via email to