1/* PR rtl-optimization/23561 */ 2 3struct A 4{ 5 char a1[1]; 6 char a2[5]; 7 char a3[1]; 8 char a4[2048 - 7]; 9} a; 10 11typedef __SIZE_TYPE__ size_t; 12extern void *memset (void *, int, size_t); 13extern void *memcpy (void *, const void *, size_t); 14extern int memcmp (const void *, const void *, size_t); 15extern void abort (void); 16 17void 18bar (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 28int 29foo (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 39int 40main (void) 41{ 42 foo (); 43 return 0; 44} 45