modernc.org/ccgo/v3@v3.16.14/lib/testdata/bug/union.c (about) 1 union u { 2 char *a; 3 int b; 4 }; 5 6 union u f(int i) { 7 return (union u){b: i}; 8 } 9 10 union u g(int i) { 11 return (union u){.b = i}; 12 } 13 14 int main() { 15 int i = 0; 16 union u u, v; 17 while ((u = f(i)).b < 5) { 18 __builtin_printf("%d\n", i++); 19 } 20 __builtin_printf("%d\n", u.b); 21 i = 0; 22 while ((v = g(i)).b < 3) { 23 __builtin_printf("%d\n", i++); 24 } 25 __builtin_printf("%d\n", v.b); 26 return 0; 27 }