From: Matthias Braun Date: Fri, 30 May 2008 11:37:15 +0000 (+0000) Subject: union init test (copied from firm) X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=2db2cbd9ee2f2842526ff09019c1221e34c3ea41;p=cparser union init test (copied from firm) [r19834] --- diff --git a/parsetest/union_init.c b/parsetest/union_init.c new file mode 100644 index 0000000..b25c86d --- /dev/null +++ b/parsetest/union_init.c @@ -0,0 +1,51 @@ +int printf(const char *fmt, ...); + +typedef union blub { + int i; + char a[4]; +} blub; + +blub a = { + .i = 23, + .a[2] = 23, 19 +}; + +blub b = { + .a[2] = 23, 19, + .i = 23 +}; + +#if 0 +blub c = { + .a[2] = 23, 19, 17, + .i = 23 +}; +#endif + +blub d = { + .a[2] = 23, + .i = 23, + .a[3] = 19 +}; + +blub e = { + .a[2] = 23, + .i = 23, + .a[2] = 19, 23 +}; + +blub f = { + .i = 23, + .a[2] = 23, + .a[1] = 19 +}; + +int main(void) +{ + printf("%d %d %d %d\n", a.a[0], a.a[1], a.a[2], a.a[3]); + printf("%d\n", b.i); + printf("%d %d %d %d\n", d.a[0], d.a[1], d.a[2], d.a[3]); + printf("%d %d %d %d\n", e.a[0], e.a[1], e.a[2], e.a[3]); + printf("%d %d %d %d\n", f.a[0], f.a[1], f.a[2], f.a[3]); + return 0; +}