[Bug fortran/95053] [11 regression] ICE in f951: gfc_divide()

wschmidt at linux dot ibm.com gcc-bugzilla@gcc.gnu.org
Thu May 14 17:34:49 GMT 2020


--- Comment #24 from wschmidt at linux dot ibm.com ---
On 5/14/20 12:08 PM, sgk at troutmask dot apl.washington.edu wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95053
> --- Comment #23 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
> On Thu, May 14, 2020 at 02:57:37PM +0000, wschmidt at gcc dot gnu.org wrote:
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95053
>> Bill Schmidt <wschmidt at gcc dot gnu.org> changed:
>>             What    |Removed                     |Added
>> ----------------------------------------------------------------------------
>>                   CC|                            |wschmidt at gcc dot gnu.org
>> --- Comment #22 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
>> Breaking legitimate code, even if "borderline," does not seem right to me.
>> Zero division is generally a runtime exception because of such cases.
>> You write code for a general case, then later you discover "oh, well, we could
>> make this variable zero for our specific usage," and now the compiler throws a
>> fit?  Seems like this is warning-level stuff.
> If Bill's reduction of the several thousand-line file to 10ish
> lines is an accurate reduction (and I have no reasons to doubt
> that it isn't), then no.  It is an programming error.  This is
> not the first time that gfortran has found a programming error
> in WRF.  Sure, in this case the 'if (cdleps > 0)' leads to dead
> code elimination, but DCE happens after gfortran has done some
> constant folding and common subexpression elimination in the
> front-end.
I'm afraid I disagree.  A divide-by-zero that cannot ever be executed is 
not an error.

More information about the Gcc-bugs mailing list