summaryrefslogtreecommitdiff
path: root/test/regression/struct11.c
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-10 11:16:24 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-10 11:16:24 +0000
commit4caa6402f1f2749b23c68338c98265db88be3c52 (patch)
treee787355a72a6fbeac8047002b5d6d8dfb159c680 /test/regression/struct11.c
parent5a62dbaf613ee5e5599faa60e5bcfe346e755877 (diff)
IA32: wrong moves generated in print_builtin_memcpy_big.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1705 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'test/regression/struct11.c')
-rw-r--r--test/regression/struct11.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/regression/struct11.c b/test/regression/struct11.c
new file mode 100644
index 0000000..804d03c
--- /dev/null
+++ b/test/regression/struct11.c
@@ -0,0 +1,39 @@
+int printf (const char *, ...);
+
+struct S0 {
+ int : 1;
+ int f1;
+ int : 31;
+ int : 4;
+ int : 0;
+ int : 21;
+};
+
+struct S1 {
+ struct S0 f2;
+ struct S0 f3;
+ int f4;
+ int f6;
+ struct S0 f7;
+};
+
+struct S5;
+
+struct S1 g_21;
+
+int g_184;
+int *g_367 = &g_184;
+int **g_366 = &g_367;
+
+struct S5 *func_27 (struct S1 p_29, struct S5 *p_31)
+{
+ **g_366 = p_29.f7.f1;
+ return p_31;
+}
+
+int main (void)
+{
+ func_27 (g_21, 0);
+ printf ("%d\n", g_184);
+ return 0;
+}