From bae0ed25d01388093ebcb4b32db0b6d1169f17db Mon Sep 17 00:00:00 2001
From: xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>
Date: Fri, 9 Apr 2010 12:26:47 +0000
Subject: [PATCH] Test bit field of size 32

git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1313 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
---
 test/regression/Makefile           |  2 +-
 test/regression/Results/bitfields3 |  2 ++
 test/regression/bitfields3.c       | 15 +++++++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 test/regression/Results/bitfields3
 create mode 100644 test/regression/bitfields3.c

diff --git a/test/regression/Makefile b/test/regression/Makefile
index 9fcd82f49..08e1f7019 100644
--- a/test/regression/Makefile
+++ b/test/regression/Makefile
@@ -7,7 +7,7 @@ CCOMPFLAGS=-stdlib ../../runtime -dparse -dclight -dasm \
 LIBS=$(LIBMATH)
 
 # Can run and have reference output in Results
-TESTS=bitfields1 bitfields2 expr1 initializers volatile2 funct3 expr5
+TESTS=bitfields1 bitfields2 bitfields3 expr1 initializers volatile2 funct3 expr5
 
 # Other tests: should compile to .s without errors (but expect warnings)
 EXTRAS=commaprec expr2 expr3 expr4 extern1 funct2 funptr1 init1 \
diff --git a/test/regression/Results/bitfields3 b/test/regression/Results/bitfields3
new file mode 100644
index 000000000..4f9051539
--- /dev/null
+++ b/test/regression/Results/bitfields3
@@ -0,0 +1,2 @@
+x = {a = 12345678}
+x = {a = deadbeef}
diff --git a/test/regression/bitfields3.c b/test/regression/bitfields3.c
new file mode 100644
index 000000000..de29f4d45
--- /dev/null
+++ b/test/regression/bitfields3.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+struct s {
+  unsigned int a: 32;
+};
+
+struct s x = { 0x12345678 };
+
+int main()
+{
+  printf("x = {a = %x}\n", x.a);
+  x.a = 0xDEADBEEF;
+  printf("x = {a = %x}\n", x.a);
+  return 0;
+}
-- 
GitLab