Hello, Not sure if it's the version of clang that I was using, or the warning level/toggle on the project that I was compiling, but Musl headers were causing a number of warnings. Added extra parenthesis, so it's more explicit the precedence of | vs & Added 'const' to the typecasting. Clang didn't like const casting. diff --git a/include/endian.h b/include/endian.h index 1bd4445..a7a9b6a 100644 --- a/include/endian.h +++ b/include/endian.h @@ -24,17 +24,17 @@ static __inline uint16_t __bswap16(uint16_t __x) { - return __x<<8 | __x>>8; + return (__x<<8) | (__x>>8); } static __inline uint32_t __bswap32(uint32_t __x) { - return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24; + return __x>>24 | (__x>>8&0xff00) | (__x<<8&0xff0000) | __x<<24; } static __inline uint64_t __bswap64(uint64_t __x) { - return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32); + return (__bswap32(__x)+0ULL)<<32 | __bswap32(__x>>32); } #if __BYTE_ORDER == __LITTLE_ENDIAN diff --git a/include/sched.h b/include/sched.h index 05d40b1..4d1a599 100644 --- a/include/sched.h +++ b/include/sched.h @@ -95,8 +95,8 @@ static __inline void __CPU_##func##_S(size_t __size, cpu_set_t *__dest, \ { \ size_t __i; \ for (__i=0; __i<__size/sizeof(long); __i++) \ - ((unsigned long *)__dest)[__i] = ((unsigned long *)__src1)[__i] \ - op ((unsigned long *)__src2)[__i] ; \ + ((unsigned long *)__dest)[__i] = ((const unsigned long *)__src1)[__i] \ + op ((const unsigned long *)__src2)[__i] ; \ } __CPU_op_func_S(AND, &)