It's not clear why they were put in place - a__ is of the very type already.
No change in generated code. Signed-off-by: Jan Beulich <[email protected]> --- a/xen/arch/x86/include/asm/bitops.h +++ b/xen/arch/x86/include/asm/bitops.h @@ -343,7 +343,7 @@ static always_inline unsigned int __scan if ( o__ >= s__ ) \ r__ = s__; \ else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG ) \ - r__ = o__ + __scanbit(*(const unsigned long *)(a__) >> o__, s__); \ + r__ = o__ + __scanbit(*a__ >> o__, s__); \ else if ( __builtin_constant_p(off) && !o__ ) \ r__ = __find_first_bit(a__, s__); \ else \ @@ -375,7 +375,7 @@ static always_inline unsigned int __scan if ( o__ >= s__ ) \ r__ = s__; \ else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG ) \ - r__ = o__ + __scanbit(~*(const unsigned long *)(a__) >> o__, s__); \ + r__ = o__ + __scanbit(~*a__ >> o__, s__); \ else if ( __builtin_constant_p(off) && !o__ ) \ r__ = __find_first_zero_bit(a__, s__); \ else \
