[PATCH] Fix PR54733 Optimize endian independent load/store

Andreas Schwab schwab@linux-m68k.org
Tue May 27 16:45:00 GMT 2014


"Thomas Preud'homme" <thomas.preudhomme@arm.com> writes:

> diff --git a/gcc/testsuite/gcc.c-torture/execute/bswap-2.c b/gcc/testsuite/gcc.c-torture/execute/bswap-2.c
> index 38f18fd..4368d83 100644
> --- a/gcc/testsuite/gcc.c-torture/execute/bswap-2.c
> +++ b/gcc/testsuite/gcc.c-torture/execute/bswap-2.c
> @@ -6,8 +6,11 @@ typedef __UINT32_TYPE__ unsigned;
>  
>  struct bitfield {
>    unsigned char f0:7;
> +  unsigned char   :0;
>    unsigned char f1:7;
> +  unsigned char   :0;
>    unsigned char f2:7;
> +  unsigned char   :0;
>    unsigned char f3:7;
>  };

This adds a full byte of padding between each bitfield.  If you want a
single padding bit you should use :1, but you also need to update the
test to check for 0x44434241 (0x88868482 is impossible, since that
requires at least 8 bits per bitfield).

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Gcc-patches mailing list