On Wed, Feb 17, 2021 at 17:49:15 -0000, Christos Zoulas wrote:

> In article <ycxj044lgyflp...@pony.stderr.spb.ru>,
> Valery Ushakov  <u...@stderr.spb.ru> wrote:
> 
> >But to get back to my main point, PLEASE, can we stop making random
> >aimless changes without prior discussion?
> 
> Here's the change I'd like to make:
> - pass the alignment instead of the mask (as Roy asked and to match the
>   other macro)
> - use alignof to determine that alignment and CTASSERT what we expect
> - remove unused macros
> 
> This incrementally improves things.
[...]
> diff -u -p -u -r1.688 param.h
> --- sys/param.h       15 Feb 2021 19:46:53 -0000      1.688
> +++ sys/param.h       17 Feb 2021 17:45:55 -0000
> @@ -290,7 +290,7 @@
>  #ifdef __NO_STRICT_ALIGNMENT
>  #define      POINTER_ALIGNED_P(p, a)         1
>  #else
> -#define      POINTER_ALIGNED_P(p, a)         (((uintptr_t)(p) & (a)) == 0)
> +#define      POINTER_ALIGNED_P(p, a)         (((uintptr_t)(p) & ((a) - 1)) 
> == 0)
>  #endif
>  
>  /*

This incrementally improves wrong things b/c you still have the "is
aligned" and "ought to be aligned" conflated in one.


-uwe

Reply via email to