public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: Michael Marks <Michael.Marks@internetmachines.com>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: RE: c/10226: unsigned short promotion with bitwise inversion
Date: Wed, 26 Mar 2003 19:56:00 -0000	[thread overview]
Message-ID: <20030326193602.7721.qmail@sources.redhat.com> (raw)

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

From: Michael Marks <Michael.Marks@internetmachines.com>
To: 'Falk Hueffner' <falk.hueffner@student.uni-tuebingen.de>
Cc: gcc-gnats@gcc.gnu.org
Subject: RE: c/10226: unsigned short promotion with bitwise inversion
Date: Wed, 26 Mar 2003 11:27:06 -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_01C2F3CD.AFA9C7E0
 Content-Type: text/plain;
 	charset="iso-8859-1"
 
 Actually I understood that the warning was tied to that error.
 
 I would suggest:
 warning : ~ operator caused promotion of unsigned short to int
 
 Interestingly: Sun CC passes and Microsoft Fails without warning.
 
 Michael.
 
 -----Original Message-----
 From: Falk Hueffner [mailto:falk.hueffner@student.uni-tuebingen.de]
 Sent: Wednesday, March 26, 2003 10:23 AM
 To: mmarks@internetmachines.com
 Cc: gcc-gnats@gcc.gnu.org
 Subject: Re: c/10226: unsigned short promotion with bitwise inversion
 
 
 mmarks@internetmachines.com writes:
 
 > When two unsigned shorts (16 bit) variables are compared with one being
 inverted the comparison will fail.
 > The following code should pass, while it does generate a warning it
 > should instead just work.
 > 
 >    unsigned short A = 0xDEAD;
 >    unsigned short B;
 >    B = ~A;
 >    if ( B == ~A) {
 >       printf("Pass\n");
 >    }
 >    else {
 >       printf("Fail\n");
 >    }
 
 Apparently, you didn't understand the warning. The C standard mandates
 that "~A" will promote A to int first. So gcc is behaving correctly
 here. Any suggestions on how the wording of the message could be
 improved to be clearer?
 
 -- 
 	Falk
 
 ------_=_NextPart_001_01C2F3CD.AFA9C7E0
 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>Actually I understood that the warning was tied to =
 that error.</FONT>
 </P>
 
 <P><FONT SIZE=3D2>I would suggest:</FONT>
 <BR><FONT SIZE=3D2>warning : ~ operator caused promotion of unsigned =
 short to int</FONT>
 </P>
 
 <P><FONT SIZE=3D2>Interestingly: Sun CC passes and Microsoft Fails =
 without warning.</FONT>
 </P>
 
 <P><FONT SIZE=3D2>Michael.</FONT>
 </P>
 
 <P><FONT SIZE=3D2>-----Original Message-----</FONT>
 <BR><FONT SIZE=3D2>From: Falk Hueffner [<A =
 HREF=3D"mailto:falk.hueffner@student.uni-tuebingen.de">mailto:falk.hueff=
 ner@student.uni-tuebingen.de</A>]</FONT>
 <BR><FONT SIZE=3D2>Sent: Wednesday, March 26, 2003 10:23 AM</FONT>
 <BR><FONT SIZE=3D2>To: mmarks@internetmachines.com</FONT>
 <BR><FONT SIZE=3D2>Cc: gcc-gnats@gcc.gnu.org</FONT>
 <BR><FONT SIZE=3D2>Subject: Re: c/10226: unsigned short promotion with =
 bitwise inversion</FONT>
 </P>
 <BR>
 
 <P><FONT SIZE=3D2>mmarks@internetmachines.com writes:</FONT>
 </P>
 
 <P><FONT SIZE=3D2>&gt; When two unsigned shorts (16 bit) variables are =
 compared with one being inverted the comparison will fail.</FONT>
 <BR><FONT SIZE=3D2>&gt; The following code should pass, while it does =
 generate a warning it</FONT>
 <BR><FONT SIZE=3D2>&gt; should instead just work.</FONT>
 <BR><FONT SIZE=3D2>&gt; </FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; unsigned short A =3D =
 0xDEAD;</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; unsigned short B;</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; B =3D ~A;</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; if ( B =3D=3D ~A) {</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
 printf(&quot;Pass\n&quot;);</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; }</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; else {</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
 printf(&quot;Fail\n&quot;);</FONT>
 <BR><FONT SIZE=3D2>&gt;&nbsp;&nbsp;&nbsp; }</FONT>
 </P>
 
 <P><FONT SIZE=3D2>Apparently, you didn't understand the warning. The C =
 standard mandates</FONT>
 <BR><FONT SIZE=3D2>that &quot;~A&quot; will promote A to int first. So =
 gcc is behaving correctly</FONT>
 <BR><FONT SIZE=3D2>here. Any suggestions on how the wording of the =
 message could be</FONT>
 <BR><FONT SIZE=3D2>improved to be clearer?</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_01C2F3CD.AFA9C7E0--


             reply	other threads:[~2003-03-26 19:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-26 19:56 Michael Marks [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-03-27  0:16 Michael Marks
2003-03-26 23:06 Falk Hueffner
2003-03-26 22:36 Glen Nakamura
2003-03-26 22:26 Glen Nakamura
2003-03-26 22:26 Falk Hueffner
2003-03-26 22:06 Michael Marks
2003-03-26 21:56 Glen Nakamura
2003-03-26 21:56 Falk Hueffner
2003-03-26 21:16 ebotcazou
2003-03-26 21:16 Michael Marks
2003-03-26 20:36 Glen Nakamura
2003-03-26 18:26 Falk Hueffner
2003-03-26 18:16 mmarks

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=20030326193602.7721.qmail@sources.redhat.com \
    --to=michael.marks@internetmachines.com \
    --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).