Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 04 Feb 2002 17:20:04 +0000
From:      Mark Murray <mark@grondar.za>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys socket.h types.h 
Message-ID:  <200202041720.g14HK9E56882@greenpeace.grondar.org>
In-Reply-To: <20020205034456.K23699-100000@gamplex.bde.org> ; from Bruce Evans <bde@zeta.org.au>  "Tue, 05 Feb 2002 03:57:27 %2B1100."
References:  <20020205034456.K23699-100000@gamplex.bde.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> On Mon, 4 Feb 2002, Mark Murray wrote:
> 
> > > > So how does one write a (decent) macro to return a correct value
> > > > for min(1u, -1)?
> > > The warnings are probably correct.  They probably indicate that callers
> > > are passing mismatched arg types.
> >
> > Your thoughts on turning howmany() into a function?
> 
> Negative.  I gave the examples of the min() functions vs the MIN() macro
> to show why the macro is better.

Hehehe! I read that as a reason why the function is better, as it
(seemed to?) allowed more sane type-correct handling.

> > > Perhaps more seriously, the change to the type of NBBY exposes an old
> > > bug in ffs and causes kernel panics.  See another thread.  Please
> > > back it out too, and consider doing the same for all the other type
> > > changes.
> >
> > If that is a bug, then surely that is what needs fixing?
> 
> That and millions of other lines out there that may depend on the old
> behaviour.

A quick grep shows that that may just be a bit pessimistic :-).

The kernel currently has 19 files containing NBBY. 7 of them are
headers, and looking at them shows that fixing NBBY use in
macros is close to trivial.

> Anyway, I now think it is just wrong for NBBY to have an unsigned type.
> It is usually wrong for small counters to have an unsigned type just
> because they are nonnegative and represent counts.  Unsigned types
> tend to cause sign extension problems and they always inhibit detection
> of overflow.  NBBY is an old spelling of the standard CHAR_BIT.  The
> type of CHAR_BIT is not specified in the standard, and is normally
> plain int.

OK. NBBY is now back to signed. I'll look for other fixes for the
lint whinings :-).

M
-- 
o       Mark Murray
\_      FreeBSD Services Limited
O.\_    Warning: this .sig is umop ap!sdn

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202041720.g14HK9E56882>