[ovs-dev] [PATCH] CodingStyle: Relax restrictions on types of bit-fields.

Jarno Rajahalme jrajahalme at nicira.com
Thu Aug 28 13:05:40 UTC 2014


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 mailing list