diff --git a/tests/slicing/sources/bitcast2.c b/tests/slicing/sources/bitcast2.c index 99ec933c0..5ab29557a 100644 --- a/tests/slicing/sources/bitcast2.c +++ b/tests/slicing/sources/bitcast2.c @@ -1,15 +1,15 @@ -_Static_assert(sizeof(int) == 4, "This test assumes sizeof(int) == 4"); +#include /* test accessing bytes in int */ int main(void) { - int a; - a = 0; + int a = 0; char *byte = (char *) &a; - byte[0] = 0xab; - byte[1] = 0xab; - byte[2] = 0xab; - byte[3] = 0xab; - test_assert(a == 0xabababab); + + int result = 0; + for (unsigned i = 0; i < sizeof(int); i++) + result |= (byte[i] = 0x1b) << i * CHAR_BIT; + + test_assert(a == result); return 0; } diff --git a/tests/slicing/sources/bitcast3.c b/tests/slicing/sources/bitcast3.c index 094ad28fd..2a6ca7c2f 100644 --- a/tests/slicing/sources/bitcast3.c +++ b/tests/slicing/sources/bitcast3.c @@ -1,19 +1,19 @@ -_Static_assert(sizeof(int) == 4, "This test assumes sizeof(int) == 4"); +#include union BYTE { int i; - char b[4]; + char b[sizeof(int)]; }; /* test accessing bytes in int */ int main(void) { - union BYTE B; - B.i = 0; - B.b[0] = 0xab; - B.b[1] = 0xab; - B.b[2] = 0xab; - B.b[3] = 0xab; - test_assert(B.i == 0xabababab); + union BYTE B = {.i = 0}; + + int result = 0; + for (unsigned i = 0; i < sizeof(int); i++) + result |= (B.b[i] = 0x1b) << i * CHAR_BIT; + + test_assert(B.i == result); return 0; }