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>> When two unsigned shorts (16 bit) variables are = compared with one being inverted the comparison will fail.</FONT> <BR><FONT SIZE=3D2>> The following code should pass, while it does = generate a warning it</FONT> <BR><FONT SIZE=3D2>> should instead just work.</FONT> <BR><FONT SIZE=3D2>> </FONT> <BR><FONT SIZE=3D2>> unsigned short A =3D = 0xDEAD;</FONT> <BR><FONT SIZE=3D2>> unsigned short B;</FONT> <BR><FONT SIZE=3D2>> B =3D ~A;</FONT> <BR><FONT SIZE=3D2>> if ( B =3D=3D ~A) {</FONT> <BR><FONT SIZE=3D2>> = printf("Pass\n");</FONT> <BR><FONT SIZE=3D2>> }</FONT> <BR><FONT SIZE=3D2>> else {</FONT> <BR><FONT SIZE=3D2>> = printf("Fail\n");</FONT> <BR><FONT SIZE=3D2>> }</FONT> </P> <P><FONT SIZE=3D2>Apparently, you didn't understand the warning. The C = standard mandates</FONT> <BR><FONT SIZE=3D2>that "~A" 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> <FONT = SIZE=3D2>Falk</FONT> </P> </BODY> </HTML> ------_=_NextPart_001_01C2F3CD.AFA9C7E0--
next 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: linkBe 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).