modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20000703-1.c (about) 1 void abort(void); 2 void exit(int); 3 struct baz 4 { 5 char a[17]; 6 char b[3]; 7 unsigned int c; 8 unsigned int d; 9 }; 10 11 void foo(struct baz *p, unsigned int c, unsigned int d) 12 { 13 __builtin_memcpy (p->b, "abc", 3); 14 p->c = c; 15 p->d = d; 16 } 17 18 void bar(struct baz *p, unsigned int c, unsigned int d) 19 { 20 ({ void *s = (p); 21 __builtin_memset (s, '\0', sizeof (struct baz)); 22 s; }); 23 __builtin_memcpy (p->a, "01234567890123456", 17); 24 __builtin_memcpy (p->b, "abc", 3); 25 p->c = c; 26 p->d = d; 27 } 28 29 int main() 30 { 31 struct baz p; 32 foo(&p, 71, 18); 33 if (p.c != 71 || p.d != 18) 34 abort(); 35 bar(&p, 59, 26); 36 if (p.c != 59 || p.d != 26) 37 abort(); 38 exit(0); 39 }