[PATCH] test/input: Replace negative architecture test by test for 64-bit

Mark Kettenis mark.kettenis at xs4all.nl
Tue Feb 12 04:40:33 PST 2013


> From: Geert Uytterhoeven <geert at linux-m68k.org>
> Date: Tue, 12 Feb 2013 11:17:22 +0100
> 
> The test for double-aligned members in dix_valuator_alloc() currently
> depends on "if !defined(__i386__) && !defined(__sh__)". This covers
> m68k, where it fails.
> 
> According to the comment, the test should be limited to 64-bit
> platforms only. Hence check if sizeof(long) == 8 instead.

Unfortunately the comment isn't accurate.  There are quite a few
32-bit architectures that demand 64-bit alignment of doubles.  At
least arm, hppa, powerpc and sparc fall into that category.  Those
that only required 32-bit alignment seemed to be a minority.  Even if
you include m68k in that category, that's still the case.

My advice would be to add __m68k__ to the list and adjust the comment
to say something like: "Most architectures, even 32-bit ones, require
64-bit alignment".

> Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
> ---
> Untested for now
> 
>  test/input.c |   10 +++++-----
>  1 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/test/input.c b/test/input.c
> index be988a4..ed29bdc 100644
> --- a/test/input.c
> +++ b/test/input.c
> @@ -1384,11 +1384,11 @@ dix_valuator_alloc(void)
>  
>          assert(v);
>          assert(v->numAxes == num_axes);
> -#if !defined(__i386__) && !defined(__sh__)
> -        /* must be double-aligned on 64 bit */
> -        assert(((void *) v->axisVal - (void *) v) % sizeof(double) == 0);
> -        assert(((void *) v->axes - (void *) v) % sizeof(double) == 0);
> -#endif
> +        if (sizeof(long) == 8) {
> +            /* must be double-aligned on 64 bit */
> +            assert(((void *) v->axisVal - (void *) v) % sizeof(double) == 0);
> +            assert(((void *) v->axes - (void *) v) % sizeof(double) == 0);
> +        }
>          num_axes++;
>      }
>  
> -- 
> 1.7.0.4
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> 


More information about the xorg-devel mailing list