[Bug fortran/103707] Stray "Array operands are incommensurate"

anlauf at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jun 26 21:21:26 GMT 2022


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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-06-26
                 CC|                            |anlauf at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #6 from anlauf at gcc dot gnu.org ---
(In reply to Thomas Koenig from comment #5)
> Thanks for the quick reduction, Gerhard.
> 
> This originally came from something like
> 
> program p
>    real, parameter :: fmin(1) = 0.
>    real, parameter :: fmax(1) = 1.
>    real :: x(1)
>    where (fmin <= 0)
>       x = fmin + (fmax-fmin)
>    elsewhere
>       x = (fmax/fmin)**2
>    end where
>    print *,x
> end
> 
> so there is no division by zero at runtime.

Some data points from other compiler that reject the code:

NAG prints

NAG Fortran Compiler Release 7.0(Yurakucho) Build 7009
Error: pr103707.f90, line 8: Floating-point divide by zero


Cray versions 10 thru 14 print:

      x = (fmax/fmin)**2
               ^         
ftn-1184 crayftn: WARNING P, File = pr103707.f90, Line = 8, Column = 16 
  Evaluation of this constant expression produced a NaN or other abnormal
value.
                     ^   
ftn-1184 crayftn: WARNING P, File = pr103707.f90, Line = 8, Column = 22 
  Evaluation of this constant expression produced a NaN or other abnormal
value.

Cray Fortran : Version 14.0.0
(20220420160222_c98838affc7b58fed2a72f164d77c35e1bc8772f)


Intel and Nvidia are silent.

While gfortran's error message is misleading, what is our plan?
Avoid simplification in the frontend?


More information about the Gcc-bugs mailing list