This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: changing "configure" to default to "gcc -g -O2 -fwrapv ..."


> VRP as currently written adjust limits out to "infinity" of an
> appropriate sign for variables which are changed in loops.  It then
> assumes that the (signed) variable will not wrap past that point,
> since that would constitute undefined signed overflow.

But isn't that fine since OTHER code is going to assume that loop invariants
don't overflow?  Or is it that we'd have to refine VRP's test to only do it
in that case?

>   for (i = 1; i < m; ++i)
>     {
>       if (i > 0)
> 	bar ();
>     }

Of course, this is an example where either the programmer is doing something
very silly or else is expecting overflow and depending on wrap semantics, so
it seems to me marginal to remove that "if".  My suggestion would be to issue
a warning saying that the test will never be false, but leaving it in.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]