From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20004 invoked by alias); 7 Apr 2003 20:56:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 19790 invoked by uid 71); 7 Apr 2003 20:56:01 -0000 Date: Mon, 07 Apr 2003 20:56:00 -0000 Message-ID: <20030407205601.19789.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Michael Ubell Subject: Re: c/10339: strncmp generates imPure code Reply-To: Michael Ubell X-SW-Source: 2003-04/txt/msg00312.txt.bz2 List-Id: The following reply was made to PR optimization/10339; it has been noted by GNATS. From: Michael Ubell To: Andreas Schwab Cc: Falk Hueffner , Wolfgang Bangerth , gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: c/10339: strncmp generates imPure code Date: Mon, 07 Apr 2003 13:53:09 -0700 I think I see what is happening. I guess computers are smarter ;-) Andreas Schwab wrote: > Michael Ubell 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