c/10339: strncmp generates imPure code

Michael Ubell ubell@mindspring.com
Mon Apr 7 20:53:00 GMT 2003


I think I see what is happening.  I guess computers are smarter ;-)

Andreas Schwab wrote:
> Michael Ubell <ubell@mindspring.com> writes:
> 
> |> Do you mean you want me to set up a case where it runs off the
> |> end of memory?
> 
> Yes.

Can't happen.

> 
> |> I think it is sufficient that it is reading memory
> |> that is not allocated, no?
> 
> No, it is not.

Well it would be but memcmp does not read the memory.

> 
> It is.  Memory returned by malloc is required to be correctly aligned for
> any type.
> 

I'm still not clear what alignment has to do with it.

The optimization takes advantage of the fact that a properly formatted
string which is shorter than the constant string cannot compare passed its
end because there must be a null byte there.

Purify must have a different model of what memcmp does.  I'll send
it to them.

Thanks
Mike



More information about the Gcc-bugs mailing list