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

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |87403
            Summary|Detect Divide By Zero and   |Detect Possible Division By
                   |give a warning in  C/C++    |Zero and give a warning in
                   |                            |C/C++ [-Wmaybe-div-by-zero]

--- Comment #6 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to Martin Sebor from comment #3)
> I agree that diagnosing (A) or (C) under -Wdiv-by-zero would not be
> appropriate because the option controls compile-time division by zero and
> there is none here.
> 
> Extending -Wdiv-by-zero to diagnose possible division by zero would
> undoubtedly make the option exceedingly noisy.  Introducing a new option
> such as -Wmaybe-div-by-zero analogous to -Wmaybe-uninitialized would be fine
> but the option wouldn't diagnose ether (A) or (C) because there is no
> evidence of overflow.  -Wmaybe-uninitialized triggers under very restrictive
> conditions, when there is some evidence that an uninitialized variable is
> used.  To avoid excessive noise from -Wmaybe-div-by-zero some similar
> approach would need to used.  Such as:
> 
>   int f (int i)
>   {
>     int j;
> 
>     if (i == 0)     // because of this test
>       j = 7;
>     else
>       j = 13;
> 
>     return j / i;   // i may be assumed to be zero here
>   }

Changing title then to specify -Wmaybe-div-by-zero would be a different
warning, which lets it block the new-warning meta-bug


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87403
[Bug 87403] [Meta-bug] Issues that suggest a new warning

Reply via email to