delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1998/11/17/09:19:54

Date: Tue, 17 Nov 1998 15:56:38 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Laszlo Molnar <laszlo DOT molnar AT eth DOT ericsson DOT se>
cc: DJGPP Workers List <djgpp-workers AT delorie DOT com>
Subject: Re: gcc: feature or bug?
In-Reply-To: <19981117131553.B17146@duna58>
Message-ID: <Pine.SUN.3.91.981117155446.15372C-100000@is>
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com

On Tue, 17 Nov 1998, Laszlo Molnar wrote:

> Let's say I have a 32-bit unsigned integer, and I want to clear it's
> most significant bit. I wrote this code:
> 
> 	(x*2)/2
> 
> And of course(?) it doesn't work. Is it a bug in gcc or a bug in me?

Did you compile with -O?  Did you look at the assembly produced by GCC?  
It is quite possible that the optimizer optimized this into oblivion.

Try this:

	volatile int x;

	x *= 2;
	x /= 2;

Does this help?

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019