From owner-freebsd-bugs@FreeBSD.ORG Wed Jan 26 10:36:39 2005 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 66E7716A4CE for ; Wed, 26 Jan 2005 10:36:39 +0000 (GMT) Received: from rosebud.otenet.gr (rosebud.otenet.gr [195.170.0.26]) by mx1.FreeBSD.org (Postfix) with ESMTP id B13A643D55 for ; Wed, 26 Jan 2005 10:36:37 +0000 (GMT) (envelope-from keramida@ceid.upatras.gr) Received: from orion.daedalusnetworks.priv (aris.bedc.ondsl.gr [62.103.39.226])j0QAaYm0031566; Wed, 26 Jan 2005 12:36:34 +0200 Received: by orion.daedalusnetworks.priv (Postfix, from userid 1001) id C35172A42F; Wed, 26 Jan 2005 12:36:33 +0200 (EET) Date: Wed, 26 Jan 2005 12:36:33 +0200 From: Giorgos Keramidas To: Steven Smith Message-ID: <20050126103633.GA829@orion.daedalusnetworks.priv> References: <20050125214606.GB1113@archibold> <20050126004033.GA2640@gothmog.gr> <20050126100839.GA4367@archibold> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050126100839.GA4367@archibold> cc: freebsd-bugs@freebsd.org cc: sos22@srcf.ucam.org Subject: Re: Dubious #define in include/pwd.h X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Jan 2005 10:36:39 -0000 On 2005-01-26 10:08, Steven Smith wrote: >>> I was messing around with sparse, the static checker used sometimes >>> by Linux kernel people, and I (or rather, it) came upon the line >>> >>> #define _PW_VERSION_MASK '0xF0' >>> >>> in /usr/src/include/pwd.h. I can't immediately see any use for this; >>> '\xf0' would probably be more useful. >> >> If this is used as a mask for 'unsigned char' values, why would it make >> any difference? Aren't they both going to be implicitly converted to >> the right typep anyway? > > Well, except for the single quotes around '0xf0'. If you go: > > int x = '0xf0'; > printf("%d\n", x); > > you probably won't get what you expect. If you replace the '0xf0' > with '\xf0' you probably will. Oops. You're right. I somehow managed to ignore the quotes :-)