From 04975b8f70a59d283eb6adf8b4b4e4dc73af698e Mon Sep 17 00:00:00 2001 From: bernhardheld Date: Sat, 19 Apr 2003 20:06:17 +0000 Subject: [PATCH] * support/regression/tests/bitfields.c: added Johan's bitfields.c git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2549 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 1 + support/regression/tests/bitfields.c | 37 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 support/regression/tests/bitfields.c diff --git a/ChangeLog b/ChangeLog index 4b189ec5..0a187292 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,7 @@ * as/z80/Makefile: fix permanent rebuild of z80 * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all" + * support/regression/tests/bitfields.c: added Johan's bitfields.c 2003-04-18 Kevin Vigor diff --git a/support/regression/tests/bitfields.c b/support/regression/tests/bitfields.c new file mode 100644 index 00000000..b34abe00 --- /dev/null +++ b/support/regression/tests/bitfields.c @@ -0,0 +1,37 @@ +/** Bitfield tests. + +*/ +#include + +struct { + char c0_3 : 3; + char c3_5 : 5; +} c_bitfield; + +struct { + int i0_7 : 7; + int i7_9 : 9; +} i_bitfield; + +struct { + long l0_7 : 7; + long l7_10 : 10; + long l17_15 : 15; +} l_bitfield; + +void +testBitfields(void) +{ + c_bitfield.c0_3 = 2; + c_bitfield.c3_5 = 3; + ASSERT(*(char *)(&c_bitfield) == (2 + (3<<3)) ); + + i_bitfield.i0_7 = 23; + i_bitfield.i7_9 = 234; + ASSERT(*(int *)(&i_bitfield) == (23 + (234<<7)) ); + + l_bitfield.l0_7 = 23; + l_bitfield.l7_10 = 234; + l_bitfield.l17_15 = 2345; + ASSERT(*(long *)(&l_bitfield) == (23 + (234<<7) + (2345<<17)) ); +} -- 2.39.5