1 1.8 rillig /* $NetBSD: d_c99_union_cast.c,v 1.8 2023/07/07 19:45:22 rillig Exp $ */ 2 1.2 rillig # 3 "d_c99_union_cast.c" 3 1.2 rillig 4 1.5 rillig /* C99 does not define union cast, it is a GCC extension. */ 5 1.1 christos 6 1.8 rillig /* lint1-flags: -Sw -X 351 */ 7 1.6 rillig 8 1.1 christos struct bar { 9 1.1 christos int a; 10 1.1 christos int b; 11 1.1 christos }; 12 1.1 christos 13 1.1 christos union foo { 14 1.1 christos struct bar *a; 15 1.1 christos int b; 16 1.1 christos }; 17 1.1 christos 18 1.1 christos void 19 1.6 rillig foo(struct bar *a) 20 1.3 rillig { 21 1.7 rillig /* expect+1: error: union cast is a GCC extension [328] */ 22 1.6 rillig a = ((union foo)a).a; 23 1.7 rillig /* expect+1: error: union cast is a GCC extension [328] */ 24 1.6 rillig a = ((union foo)"string"); 25 1.6 rillig a->a++; 26 1.1 christos } 27