Re: [PATCH v3] coding-style: Clarify the expectations around bool

From: Joe Perches
Date: Mon Jan 07 2019 - 17:10:29 EST

On Mon, 2019-01-07 at 14:11 -0700, Jason Gunthorpe wrote:
> There has been some confusion since checkpatch started warning about bool
> use in structures, and people have been avoiding using it.
> Many people feel there is still a legitimate place for bool in structures,
> so provide some guidance on bool usage derived from the entire thread that
> spawned the checkpatch warning.

Thanks Jason.

It'd be nice to combine this with some better
checkpatch warning or even a removal of that
misleading warning from checkpatch altogether.

With a couple minor nits below and and Ack if
you want one:

Acked-by: Joe Perches <joe@xxxxxxxxxxx>

> diff --git a/Documentation/process/coding-style.rst b/Documentation/process/coding-style.rst
> @@ -921,7 +921,37 @@ result. Typical examples would be functions that return pointers; they use
> NULL or the ERR_PTR mechanism to report failure.
> -17) Don't re-invent the kernel macros
> +17) Using bool
> +--------------
> +
> +The Linux kernel uses the C99 standard for the bool type. bool values can only


The Linux kernel bool type is the C99 _Bool type.

> +evaluate to 0 or 1, and implicit or explicit conversion to bool automatically
> +converts the value to true or false. When using bool types the !! construction
> +is not needed, which eliminates a class of bugs.
> +
> +When working with bool values the true and false labels should be used instead

true and false are not labels but #defines