bswap-2.c: Add alignment constraints to bitfield and test wrong results instead of correct...

2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * gcc.c-torture/execute/bswap-2.c: Add alignment constraints to
    bitfield and test wrong results instead of correct results to make the
    test more portable.

From-SVN: r211313
This commit is contained in:
Thomas Preud'homme 2014-06-06 10:42:50 +00:00 committed by Thomas Preud'homme
parent 506ac72b86
commit 4ed6899575
2 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.c-torture/execute/bswap-2.c: Add alignment constraints to
bitfield and test wrong results instead of correct results to make the
test more portable.
2014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60432

View File

@ -6,8 +6,11 @@ typedef __UINT32_TYPE__ unsigned;
struct bitfield {
unsigned char f0:7;
unsigned char :1;
unsigned char f1:7;
unsigned char :1;
unsigned char f2:7;
unsigned char :1;
unsigned char f3:7;
};
@ -74,11 +77,17 @@ main ()
return 0;
bfin.inval = (struct ok) { 0x83, 0x85, 0x87, 0x89 };
out = partial_read_le32 (bfin);
if (out != 0x09070503 && out != 0x88868482 && out != 0x78306141)
/* Test what bswap would do if its check are not strict enough instead of
what is the expected result as there is too many possible results with
bitfields. */
if (out == 0x89878583)
__builtin_abort ();
bfin.inval = (struct ok) { 0x83, 0x85, 0x87, 0x89 };
out = partial_read_be32 (bfin);
if (out != 0x03050709 && out != 0x82848688 && out != 0x41613078)
/* Test what bswap would do if its check are not strict enough instead of
what is the expected result as there is too many possible results with
bitfields. */
if (out == 0x83858789)
__builtin_abort ();
out = fake_read_le32 (cin, &cin[2]);
if (out != 0x89018583)