blob: 35941405d9105c68facf94f908d7f4be18b88117 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -fgcse-sm -minline-all-stringops" } */
/* Store motion used to fail to recognize killed expressions within
parallels such as those generated for memory copying. */
static const char s[1024] __attribute__ ((__aligned__ (32)))
= "This is what we should get!";
int bug (int arg) {
char str[sizeof(s) > 4 ? sizeof(s) : 4] __attribute__ ((__aligned__ (32)));
__builtin_memcpy (str, "Bug", 4);
if (arg <= 2)
__builtin_memcpy (str, s, sizeof (s));
if (arg <= 1)
__builtin_memcpy (str, "Err", 4);
__builtin_puts (str);
return str[0] != s[0];
}
int main () {
if (bug (2))
__builtin_abort ();
return 0;
}