[ovs-dev] [PATCH] CodingStyle: Relax restrictions on types of bit-fields.
blp at nicira.com
Thu Aug 28 15:50:59 UTC 2014
On Thu, Aug 28, 2014 at 06:05:40AM -0700, Jarno Rajahalme wrote:
> Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>
> > On Aug 27, 2014, at 9:31 AM, Ben Pfaff <blp at nicira.com> wrote:
> > C99 only requires compilers to support four types for bit-fields: signed
> > int, unsigned int, int, and _Bool. "int" should not be used because it
> > is implementation-defined whether it is signed. In practice, we have found
> > that compilers (in particular, GCC, Clang, and MSVC 2013) support any
> > integer type.
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> > CodingStyle | 10 ++++------
> > 1 file changed, 4 insertions(+), 6 deletions(-)
> > diff --git a/CodingStyle b/CodingStyle
> > index ce97258..c9b9989 100644
> > --- a/CodingStyle
> > +++ b/CodingStyle
> > @@ -428,12 +428,10 @@ prints 255 but printf("%u", -1) prints 4294967295.
> > network protocol fields or in other circumstances where the exact
> > format is important.
> > - Declare bit-fields to be type "unsigned int" or "signed int". Do
> > -*not* declare bit-fields of type "int": C89 allows these to be either
> > -signed or unsigned according to the compiler's whim. (A 1-bit
> > -bit-field of type "int" may have a range of -1...0!) Do not declare
> > -bit-fields of type _Bool or enum or any other type, because these are
> > -not portable.
> > + Declare bit-fields to be signed or unsigned integer types or _Bool
> > +(aka bool). Do *not* declare bit-fields of type "int": C99 allows
> > +these to be either signed or unsigned according to the compiler's
> > +whim. (A 1-bit bit-field of type "int" may have a range of -1...0!)
> > Try to order structure members such that they pack well on a system
> > with 2-byte "short", 4-byte "int", and 4- or 8-byte "long" and pointer
> > --
> > 1.9.1
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
More information about the dev