1 /* PR rtl-optimization/57915 */ 2 /* { dg-do compile } */ 3 /* { dg-options "-Os" } */ 4 5 extern struct T { char a[8]; char b[16]; } t; 6 int c; 7 void foo (void); 8 9 extern inline char * baz(char * x,const char * y)10baz (char *x, const char *y) 11 { 12 const char *e = y; 13 unsigned long f, g; 14 asm ("" : "+c" (f), "+D" (e) : "a" ('\0'), "X" (*e)); 15 g = e - 1 - y; 16 __builtin_memcpy (x, y, g); 17 x[g] = '\0'; 18 return x; 19 } 20 21 void bar(void)22bar (void) 23 { 24 char d[16]; 25 baz (d, t.b); 26 27 for (;;) 28 { 29 foo (); 30 if (c) 31 baz (d, t.b); 32 } 33 } 34