This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: c/10226: unsigned short promotion with bitwise inversion


The following reply was made to PR c/10226; it has been noted by GNATS.

From: Michael Marks <Michael dot Marks at internetmachines dot com>
To: 'Falk Hueffner' <falk dot hueffner at student dot uni-tuebingen dot de>, 
	Glen Nakamura <glen at imodulo dot com>
Cc: gcc-gnats at gcc dot gnu dot org
Subject: RE: c/10226: unsigned short promotion with bitwise inversion
Date: Wed, 26 Mar 2003 15:10:54 -0800

 This message is in MIME format. Since your mail reader does not understand
 this format, some or all of this message may not be legible.
 
 ------_=_NextPart_001_01C2F3EC.F3696FC0
 Content-Type: text/plain;
 	charset="iso-8859-1"
 
 Guys,
 How about...
 warning: comparison will will promote to ~(unsigned) which will zero extend
 before ~ operation
 
 -----Original Message-----
 From: Falk Hueffner [mailto:falk dot hueffner at student dot uni-tuebingen dot de]
 Sent: Wednesday, March 26, 2003 2:54 PM
 To: Glen Nakamura
 Cc: Michael Marks; gcc-gnats at gcc dot gnu dot org
 Subject: Re: c/10226: unsigned short promotion with bitwise inversion
 
 
 Glen Nakamura <glen at imodulo dot com> writes:
 
 > On Wed, Mar 26, 2003 at 11:19:58PM +0100, Falk Hueffner wrote:
 > > Glen Nakamura <glen at imodulo dot com> writes:
 > > > How about one of these:
 > > > warning: comparison of promoted ~unsigned with unsigned is always
 false
 > > > warning: comparison of ~(promoted unsigned) with unsigned is always
 false
 > > 
 > > Yes, that makes it even clearer. I'd prefer the second variant.  (BTW,
 > > funny, the optimizer doesn't seem to realize it's always false...)
 > 
 > It does on my system (GCC 3.3):
 
 Well, yeah, it's simply constant folding there. What I meant is that
 gcc doesn't optimize
 
 int f(unsigned short a, unsigned short b) { return b == ~a; }
 
 to
 
 int f(unsigned short a, unsigned short b) { return 0; }
 
 -- 
 	Falk
 
 ------_=_NextPart_001_01C2F3EC.F3696FC0
 Content-Type: text/html;
 	charset="iso-8859-1"
 Content-Transfer-Encoding: quoted-printable
 
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
 <HTML>
 <HEAD>
 <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
 charset=3Diso-8859-1">
 <META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
 5.5.2653.12">
 <TITLE>RE: c/10226: unsigned short promotion with bitwise =
 inversion</TITLE>
 </HEAD>
 <BODY>
 
 <P><FONT SIZE=3D2>Guys,</FONT>
 <BR><FONT SIZE=3D2>How about...</FONT>
 <BR><FONT SIZE=3D2>warning: comparison will will promote to ~(unsigned) =
 which will zero extend before ~ operation</FONT>
 </P>
 
 <P><FONT SIZE=3D2>-----Original Message-----</FONT>
 <BR><FONT SIZE=3D2>From: Falk Hueffner [<A =
 HREF=3D"mailto:falk dot hueffner at student dot uni-tuebingen dot de">mailto:falk.hueff=
 ner at student dot uni-tuebingen dot de</A>]</FONT>
 <BR><FONT SIZE=3D2>Sent: Wednesday, March 26, 2003 2:54 PM</FONT>
 <BR><FONT SIZE=3D2>To: Glen Nakamura</FONT>
 <BR><FONT SIZE=3D2>Cc: Michael Marks; gcc-gnats at gcc dot gnu dot org</FONT>
 <BR><FONT SIZE=3D2>Subject: Re: c/10226: unsigned short promotion with =
 bitwise inversion</FONT>
 </P>
 <BR>
 
 <P><FONT SIZE=3D2>Glen Nakamura &lt;glen at imodulo dot com&gt; writes:</FONT>
 </P>
 
 <P><FONT SIZE=3D2>&gt; On Wed, Mar 26, 2003 at 11:19:58PM +0100, Falk =
 Hueffner wrote:</FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; Glen Nakamura &lt;glen at imodulo dot com&gt; =
 writes:</FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; &gt; How about one of these:</FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; &gt; warning: comparison of promoted =
 ~unsigned with unsigned is always false</FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; &gt; warning: comparison of ~(promoted =
 unsigned) with unsigned is always false</FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; </FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; Yes, that makes it even clearer. I'd =
 prefer the second variant.&nbsp; (BTW,</FONT>
 <BR><FONT SIZE=3D2>&gt; &gt; funny, the optimizer doesn't seem to =
 realize it's always false...)</FONT>
 <BR><FONT SIZE=3D2>&gt; </FONT>
 <BR><FONT SIZE=3D2>&gt; It does on my system (GCC 3.3):</FONT>
 </P>
 
 <P><FONT SIZE=3D2>Well, yeah, it's simply constant folding there. What =
 I meant is that</FONT>
 <BR><FONT SIZE=3D2>gcc doesn't optimize</FONT>
 </P>
 
 <P><FONT SIZE=3D2>int f(unsigned short a, unsigned short b) { return b =
 =3D=3D ~a; }</FONT>
 </P>
 
 <P><FONT SIZE=3D2>to</FONT>
 </P>
 
 <P><FONT SIZE=3D2>int f(unsigned short a, unsigned short b) { return 0; =
 }</FONT>
 </P>
 
 <P><FONT SIZE=3D2>-- </FONT>
 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT =
 SIZE=3D2>Falk</FONT>
 </P>
 
 </BODY>
 </HTML>
 ------_=_NextPart_001_01C2F3EC.F3696FC0--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]