http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57915

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |vmakarov at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r192719 aka LRA merge.
extern struct T { char a[8]; char b[16]; } t;
int c;
void foo (void);

extern inline char *
baz (char *x, const char *y)
{
  const char *e = y;
  unsigned long f, g;
  asm ("repne scasb" : "+c" (f), "+D" (e) : "a" ('\0'), "X" (*e));
  g = e - 1 - y;
  __builtin_memcpy (x, y, g);
  x[g] = '\0';
  return x;
}

void
bar (void)
{
  char d[16];
  baz (d, t.b);

  for (;;)
    {
      foo ();
      if (c)
        baz (d, t.b);
    }
}

Reply via email to