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

--- Comment #2 from Ryo Furue <furue at hawaii dot edu> ---
Thank you for the prompt response!

> But, it is evaluated at compile time, and so, you'll
> get the error.

I understand that.

> You are getting the correct diagnosis!

Of course.  I agree with all your statements.

And your entirely entirely miss the point!

This is a "quality of implementation" issue.  

Since my code includes an expression that can be evaluated at compile time and
it's a division by zero, the compiler has the right to treat it as error.
(But, that's my guess.  What does the standard say?  The standard doesn't have
the notion of "compile time", so I wonder how such a case as this is treated in
the standard.)

The question is "Is refusing to compile it the best way to deal with this
error?"  My answer is no.  Since,

  real, parameter:: a = 0
  If (a > 0) then
    write(*,*) 1/a !! this part
  end if

the contents of the IF statement is unreachable, the compiler more
appropriately would issue an "unreachable statements" warning and disregard the
contents of the unreachable code.  In my opinion.

Cheers,
Ryo

Reply via email to