diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/regression/Results/bitfields8 | 4 | ||||
-rw-r--r-- | test/regression/bitfields8.c | 24 |
2 files changed, 28 insertions, 0 deletions
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 <stdio.h> + +/* 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; +} |