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!


             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: link
Be 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).