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 *
      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
      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  }