On 21 Aug 2013 at 20:47, Herbert Xu wrote: > On Thu, Aug 15, 2013 at 02:01:50PM +0200, Jan-Simon Möller wrote: > > Solution - make sure we don't exceed the 32 bit range by adding (x & ~(1U << > > 27)) > > = & (0xF7FFFFFF)_16 or & (1111 0111 1111 1111 1111 1111 1111 1111)_2 > > Your fix makes no sense. To achieve what you want you'd need to lop > off the first 5 bits, not the fifth bit. oops, the bitmask expression wanted to be (1U << 27) - 1) instead. another approach would be to simply cast the macro argument to __be32. > However, which compiler is this? This warning seems to be rather > pointless. it's clang and this warning is about an undefined behaviour because the hexadecimal constants passed to this macro are treated as signed ints and for some of the constants the result of the shift cannot be represented as a signed int. -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html