From cca95c35a944a994de1daee2462c1b3663b3efd2 Mon Sep 17 00:00:00 2001 From: xleroy Date: Fri, 24 Sep 2010 09:04:51 +0000 Subject: Inconsistent treatment of "lone" zero-width bit fields (i.e. not preceded by another bit field). git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1516 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/regression/Makefile | 2 +- test/regression/Results/bitfields7 | 1 + test/regression/bitfields7.c | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/regression/Results/bitfields7 create mode 100644 test/regression/bitfields7.c (limited to 'test') diff --git a/test/regression/Makefile b/test/regression/Makefile index 7d456df..c1925c7 100644 --- a/test/regression/Makefile +++ b/test/regression/Makefile @@ -9,7 +9,7 @@ LIBS=$(LIBMATH) # Can run and have reference output in Results TESTS=bitfields1 bitfields2 bitfields3 bitfields4 \ - bitfields5 bitfields6 \ + bitfields5 bitfields6 bitfields7 \ expr1 initializers volatile2 \ funct3 expr5 struct7 struct8 casts1 casts2 diff --git a/test/regression/Results/bitfields7 b/test/regression/Results/bitfields7 new file mode 100644 index 0000000..cf2b3f3 --- /dev/null +++ b/test/regression/Results/bitfields7 @@ -0,0 +1 @@ +g_22.f2 = 1 diff --git a/test/regression/bitfields7.c b/test/regression/bitfields7.c new file mode 100644 index 0000000..33e20a1 --- /dev/null +++ b/test/regression/bitfields7.c @@ -0,0 +1,20 @@ +#include + +struct S0 { + signed f0 : 12; + unsigned f1 : 28; +}; + +struct S5 { + struct S0 f1; + unsigned : 0; + signed f2 : 26; +}; + +struct S5 g_22 = {{0,0},1}; + +int main(int argc, char* argv[]) +{ + printf("g_22.f2 = %d\n", g_22.f2); + return 0; +} -- cgit v1.2.3