public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: Andreas Schwab <schwab@suse.de> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: c/10339: strncmp generates imPure code Date: Mon, 07 Apr 2003 21:46:00 -0000 [thread overview] Message-ID: <20030407214601.4834.qmail@sources.redhat.com> (raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 1906 bytes --] The following reply was made to PR optimization/10339; it has been noted by GNATS. From: Andreas Schwab <schwab@suse.de> To: Michael Ubell <ubell@mindspring.com> Cc: Timothy C Prince <tprince@myrealbox.com>, falk.hueffner@student.uni-tuebingen.de, bangerth@ices.utexas.edu, gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: c/10339: strncmp generates imPure code Date: Mon, 07 Apr 2003 23:38:18 +0200 Michael Ubell <ubell@mindspring.com> writes: |> Andreas Schwab wrote: |> > Michael Ubell <ubell@mindspring.com> writes: |> > |> Attached is a program that reads 831 unaligned unallocated |> > |> bytes. I can't actually get it to segv on Solaris because |> > |> I don't know enough about their memory management, but |> > |> I cannot believe this is correct code. |> > Yes, you are right, I can reproduce that also on ia64-linux. The |> > conversion to memcmp is really invalid here. |> > Andreas. |> > |> |> Now I get to argue the other side :-) Was your string properly null |> terminated? If not, then its not the compiler's fault. I think |> memcmp is valid so long as the strings are well formed. This will |> be true because C strings may not contain embedded nulls. memcmp does not operate on strings, but on arrays of characters. That's an important difference, because memcmp is allowed, eg, to start comparing from the upper end of the arrays, independent of the actual contents of them; there is no null termination involved here. On the other hand strncmp must not look behind the first nul character (at least conceptionally, the actual implementation may do so anyway if it can determine that it is safe). Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."
next reply other threads:[~2003-04-07 21:46 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-04-07 21:46 Andreas Schwab [this message] -- strict thread matches above, loose matches on Subject: below -- 2003-04-08 1:56 Hans-Peter Nilsson 2003-04-07 21:46 Michael Ubell 2003-04-07 21:36 Michael Ubell 2003-04-07 21:26 Andreas Schwab 2003-04-07 20:56 Michael Ubell 2003-04-07 20:06 Michael Ubell 2003-04-07 20:06 Andreas Schwab 2003-04-07 19:56 Michael Ubell 2003-04-07 19:36 Andreas Schwab 2003-04-07 19:36 Falk Hueffner 2003-04-07 19:06 Falk Hueffner 2003-04-07 19:06 Michael Ubell 2003-04-07 18:16 Wolfgang Bangerth 2003-04-07 17:06 Michael Ubell 2003-04-07 16:48 bangerth 2003-04-07 16:16 ubell
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20030407214601.4834.qmail@sources.redhat.com \ --to=schwab@suse.de \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).