modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20050826-1.c (about) 1 /* PR rtl-optimization/23561 */ 2 3 struct A 4 { 5 char a1[1]; 6 char a2[5]; 7 char a3[1]; 8 char a4[2048 - 7]; 9 } a; 10 11 typedef __SIZE_TYPE__ size_t; 12 extern void *memset (void *, int, size_t); 13 extern void *memcpy (void *, const void *, size_t); 14 extern int memcmp (const void *, const void *, size_t); 15 extern void abort (void); 16 17 void 18 bar (struct A *x) 19 { 20 size_t i; 21 if (memcmp (x, "\1HELLO\1", sizeof "\1HELLO\1")) 22 abort (); 23 for (i = 0; i < sizeof (x->a4); i++) 24 if (x->a4[i]) 25 abort (); 26 } 27 28 int 29 foo (void) 30 { 31 memset (&a, 0, sizeof (a)); 32 a.a1[0] = 1; 33 memcpy (a.a2, "HELLO", sizeof "HELLO"); 34 a.a3[0] = 1; 35 bar (&a); 36 return 0; 37 } 38 39 int 40 main (void) 41 { 42 foo (); 43 return 0; 44 }