On 2014-04-14 14:14:14 +0200, Raphael Geissert wrote:
> Vincent Lefevre wrote:
> [...]
> > int foo (int d)
> > {
> >   int m;
> >   m = d * 64;
> >   return m;
> > }
> [...]
> > while the cause of a potential bug would be the same. For consistency,
> > GCC should have warned for the first code too.
> 
> No, there is no optimisation in that case, so there is no warning. It only 
> warns when it uses the knowledge that "(signed) integer overflow isn't 
> possible" to optimise away some redundant code.

But what I mean is that it's pointless to emit such a warning when
the effect of the potential integer overflow is already visible,
for instance in printf below:

  m = d * C;
  printf ("%d\n", m);
  return m >= 0;

If there was an integer overflow, you will get an incorrect value
output by the printf. This means that it is very likely to be a false
positive. So, one doesn't want the warning.

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20140414132123.ga25...@ypig.lip.ens-lyon.fr

Reply via email to