Re: [PATCH 1/2] Staging:iio:Prefer using BIT macro

From: Andy Shevchenko
Date: Mon Feb 08 2016 - 10:11:50 EST


On Mon, Feb 8, 2016 at 11:14 AM, Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:
> On 02/08/2016 07:48 AM, Bhumika Goyal wrote:

>> value = (s8)((data >> AD7816_TEMP_FLOAT_OFFSET) - 103);
>> data &= AD7816_TEMP_FLOAT_MASK;
>> if (value < 0)
>> - data = (1 << AD7816_TEMP_FLOAT_OFFSET) - data;
>> + data = BIT(AD7816_TEMP_FLOAT_OFFSET) - data;
>
>
> But in this case this is a false positive. The intended semantic meaning
> here is 2**... not BIT(...). Using BIT() here in my opinion only causes
> confusion.

+1. Here clearly the intention is to change sign of the value which
fits less than 32/16/8 bits. 1 << OFFSET represents '-0'.

--
With Best Regards,
Andy Shevchenko