* support/regression/tests/bitfields.c: added Johan's bitfields.c
authorbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 19 Apr 2003 20:06:17 +0000 (20:06 +0000)
committerbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 19 Apr 2003 20:06:17 +0000 (20:06 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2549 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
support/regression/tests/bitfields.c [new file with mode: 0644]

index 4b189ec55d5233bf6cca7df222a42e146ced9d7a..0a18729237a13497ddf793dd6f52a6e6705f2798 100644 (file)
--- 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 <kevin@vigor.nu>
 
diff --git a/support/regression/tests/bitfields.c b/support/regression/tests/bitfields.c
new file mode 100644 (file)
index 0000000..b34abe0
--- /dev/null
@@ -0,0 +1,37 @@
+/** Bitfield tests.
+
+*/
+#include <testfwk.h>
+
+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)) );
+}