From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20196 invoked by alias); 21 Mar 2003 15:06:01 -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 20173 invoked by uid 71); 21 Mar 2003 15:06:01 -0000 Date: Fri, 21 Mar 2003 15:06:00 -0000 Message-ID: <20030321150601.20172.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Wolfgang Bangerth Subject: Re: c/10176: Broken nested Do loop: simple example. gcc 3.2 redhat (fwd) Reply-To: Wolfgang Bangerth X-SW-Source: 2003-03/txt/msg01400.txt.bz2 List-Id: The following reply was made to PR c/10176; it has been noted by GNATS. From: Wolfgang Bangerth To: gcc-gnats@gcc.gnu.org Cc: Subject: Re: c/10176: Broken nested Do loop: simple example. gcc 3.2 redhat (fwd) Date: Fri, 21 Mar 2003 09:03:47 -0600 (CST) ---------- Forwarded message ---------- Date: 20 Mar 2003 18:49:53 -0800 From: Ernst Berg To: bangerth@dealii.org Subject: Re: c/10176: Broken nested Do loop: simple example. gcc 3.2 redhat It would need to look for a power of 3.. I was looking at the parity language of it. I just ran it again to get an example and it worked. I don't get it. I am sorry.. I'm not sure why it wouldn't work before even after I powered off and rebooted.. False alarm. This is a related function to the Collatz problem 3x+1 if( odd ) ----- 2 if ( even ) On Thu, 2003-03-20 at 17:51, bangerth@dealii.org wrote: > Synopsis: Broken nested Do loop: simple example. gcc 3.2 redhat > > State-Changed-From-To: open->feedback > State-Changed-By: bangerth > State-Changed-When: Fri Mar 21 01:51:28 2003 > State-Changed-Why: > Your program 4x.c is essentially equivalent to this one: > -------------------------- > int main(void) > { > unsigned int count = 1; > do { > if( count % 3 ) { count *= 4; count += 2; } > else { count /= 3; } > > if( count == 1 ) break; > if( count == 3 ) break; > } while(1); > return(0); > } > ---------------------- > What happens is that you never jump out of the inner loop. > Unfortunately, I don't see right away why the loop should > terminate at all. gcc seems to have the same problem, as > does icc. Can you give a simple argument why it should? > > Thanks > Wolfgang > > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10176 ---------------------------------------------------------------------------------------------- 50% faster, 400% cheaper, one phone line for voice and data, v.92, national coverage, all for less than $8.50 a month http://www.BigValley.net