public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: "Christian Ehrhardt" <ehrhardt@mathematik.uni-ulm.de> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: optimization/7799: [3.2/3.3 regression] Loop bug with optimization flag -Os in gcc Date: Fri, 13 Dec 2002 05:46:00 -0000 [thread overview] Message-ID: <20021213134603.7705.qmail@sources.redhat.com> (raw) The following reply was made to PR optimization/7799; it has been noted by GNATS. From: "Christian Ehrhardt" <ehrhardt@mathematik.uni-ulm.de> To: nejataydin@superonline.com, gcc-gnats@gcc.gnu.org, gcc@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: optimization/7799: [3.2/3.3 regression] Loop bug with optimization flag -Os in gcc Date: Fri, 13 Dec 2002 14:36:26 +0100 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7799 Hi, this PR is about the following code snippet that is miscompiled with -Os void fill (int* p, int* q[10]) { int i; for (i = 0; i < 10; i++) *q++ = &p[i]; } The asm-Code is this: pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax movl 12(%ebp), %edx leal 36(%eax), %ecx .L6: movl %eax, (%edx) addl $4, %eax addl $4, %edx cmpl %ecx, %eax jle .L6 popl %ebp ret This code roughly corresponds to the following C-Code: void fill (int * p, int *q[10]) { int ecx = (int)p + 9; do { *q = p; p++; q++; } while ((int)p <= ecx); } This transformation is IMHO illegal because there is no way to make the comparison in general equivialent to that in the original for loop. If p is initially 0x7ffffffc the comparison must be treated as unsigned, however, if p is initially 0xfffffffc the comparison must be treated as signed. regards Christian -- THAT'S ALL FOLKS!
next reply other threads:[~2002-12-13 13:46 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-12-13 5:46 Christian Ehrhardt [this message] -- strict thread matches above, loose matches on Subject: below -- 2002-12-20 16:36 Robert Dewar 2002-12-20 1:26 Christian Ehrhardt 2002-12-19 22:16 Joern Rennecke 2002-12-19 19:26 Segher Boessenkool 2002-12-13 10:06 Eric Botcazou 2002-12-13 6:56 Christian Ehrhardt 2002-12-13 5:56 Eric Botcazou 2002-12-06 12:52 bangerth
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=20021213134603.7705.qmail@sources.redhat.com \ --to=ehrhardt@mathematik.uni-ulm.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).