From 8ed2c113bbc9c43d0993d4e92878eb987c7f3a1c Mon Sep 17 00:00:00 2001 From: xleroy Date: Tue, 18 Dec 2012 07:55:07 +0000 Subject: Test bitfields of enum type git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2075 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/regression/Results/bitfields8 | 4 ++++ test/regression/bitfields8.c | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 test/regression/Results/bitfields8 create mode 100644 test/regression/bitfields8.c (limited to 'test') diff --git a/test/regression/Results/bitfields8 b/test/regression/Results/bitfields8 new file mode 100644 index 00000000..81dd9d45 --- /dev/null +++ b/test/regression/Results/bitfields8 @@ -0,0 +1,4 @@ +s.x = 0, s.y = -2 +s.x = 1, s.y = -1 +s.x = 2, s.y = 0 +s.x = 3, s.y = 1 diff --git a/test/regression/bitfields8.c b/test/regression/bitfields8.c new file mode 100644 index 00000000..8bc0c27f --- /dev/null +++ b/test/regression/bitfields8.c @@ -0,0 +1,24 @@ +#include + +/* Best-choice for signedness of bit-fields of enum type */ + +enum E1 { A = 0, B, C, D }; +enum E2 { E = -2, F, G, H }; + +struct S { enum E1 x : 2; enum E2 y : 2; }; + +struct S s; + +void printS(void) +{ + printf("s.x = %d, s.y = %d\n", s.x, s.y); +} + +int main(void) +{ + s.x = A; s.y = E; printS(); + s.x = B; s.y = F; printS(); + s.x = C; s.y = G; printS(); + s.x = D; s.y = H; printS(); + return 0; +} -- cgit