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)10 baz (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)22 bar (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