Re: [PATCH v2] byteswap: try to avoid __builtin_constant_p gcc bug

From: Tomas Winkler
Date: Thu Jun 23 2016 - 02:27:37 EST


On Wed, Jun 22, 2016 at 3:25 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Wednesday, June 22, 2016 2:44:21 PM CEST Tomas Winkler wrote:
>> >
>> > There are more than 20 files that have the statement: case cpu_to_...
>> > Sparse complains about: case __builtin_bswap, not about __builtin_constant_p.
>>
>> There is even much more in the header files used in initializers,
>> which also require constants. I wonder if __builtin_bswap produces
>> constant expression correctly under gcc?
>
> In gcc-4.8 or later yes. gcc-4.6/4.7 on powerpc was a special case that we
> have worked around now, as the 16-bit byteswap there was not a constant
> expression, unlike the 32-bit and 64-bit ones.

Can you please give any references to that?
Just to make sure we are on the same line , the bottom line is that
sparse has to be adjusted.

Thanks
Tomas