This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: -funsafe-loop-optimizations
- From: dewar at gnat dot com (Robert Dewar)
- To: drow at false dot org, rakdver at atrey dot karlin dot mff dot cuni dot cz
- Cc: dberlin at dberlin dot org, dje at watson dot ibm dot com, galibert at pobox dot com,gcc at gcc dot gnu dot org, rth at redhat dot com
- Date: Sat, 1 Jan 2005 12:13:07 -0500 (EST)
- Subject: Re: -funsafe-loop-optimizations
> (because it is infinite if n is ~0). So they aren't a "presumed
> mistake". I think the warning would only be useful for people who were
> considering turning on the matching optimization.
But how useful? I would guess that virtually 100% of such warnings would
be false positives, in the sense that they are not warning of situations
in which the standard semantics would be fine. Let's take the example:
> void foo (unsigned int n)
> {
> for (i = 0; i <= n; i++)
> bar ();
> }
I simply don't believe that anyone would write this code, expecting that
in the case where n was the max value, an infinite loop would occur, and
that's just what the programmer wants.
I can easily believe that this program might have a bug, in that the function
misbehaves if n is the max value, but in that case, the warning is useful
in any case, regardless of the proposed "optimization".