1 /* PR tree-optimization/50569 */ 2 /* Reported by Paul Koning <pkoning@gcc.gnu.org> */ 3 /* Reduced testcase by Mikael Pettersson <mikpe@it.uu.se> */ 4 5 struct event { 6 struct { 7 unsigned int sec; 8 } sent __attribute__((packed)); 9 }; 10 frob_entry(char * buf)11void __attribute__((noinline,noclone)) frob_entry(char *buf) 12 { 13 struct event event; 14 15 __builtin_memcpy(&event, buf, sizeof(event)); 16 if (event.sent.sec < 64) { 17 event.sent.sec = -1U; 18 __builtin_memcpy(buf, &event, sizeof(event)); 19 } 20 } 21 main(void)22int main(void) 23 { 24 union { 25 char buf[1 + sizeof(struct event)]; 26 int align; 27 } u; 28 29 __builtin_memset(&u, 0, sizeof u); 30 31 frob_entry(&u.buf[1]); 32 33 return 0; 34 } 35