[U-Boot] [PATCH] Introduce a global bool type

Scott Wood scottwood at freescale.com
Mon Jan 21 23:51:30 CET 2013


On 01/21/2013 04:36:42 PM, Måns Rullgård wrote:
> Scott Wood <scottwood at freescale.com> writes:
> 
> > On 01/19/2013 03:30:30 AM, Albert ARIBAUD wrote:
> >> 	/* what I favor */
> >> 	clk_is_enabled = ((reg_val >> 9) & 1) ? true: false;
> >> 	ip_is_enabled = clk_is_enabled && pwd_is_enabled;
> >> 	if (clk_is_enabled) { ...
> >>
> >> rather than assigning them 'zero/nonzero', or using bitwise ops on
> >> booleans, or testing against boolean constants (although I concede
> >> that the first line below wins over its counterpart above as far as
> >> concision is concerned).
> >
> > Conciseness can be improved with "!!((reg_val >> 9) & 1)".
> 
> x & 1 is already either zero or one.  Any further operations are  
> nothing
> but obfuscation.

The point is to avoid depending on the actual integer values of the  
boolean type, and make the code more robust against changes (e.g.  
someone later comes along and says "hmm, that 1 should be a 3 because  
we care about that other register bit as well" without noticing that  
it's being assigned to a boolean.

-Scott


More information about the U-Boot mailing list