1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3 
f(const char * c,int * i)4 void f (const char *c, int *i)
5 {
6   *i = 42;
7   __builtin_memcpy (i + 1, c, sizeof (int));
8   if (*i != 42) __builtin_abort();
9 }
10 
11 extern void keepit ();
g(const char * c,int * i)12 void g (const char *c, int *i)
13 {
14   *i = 33;
15   __builtin_memcpy (i - 1, c, 3 * sizeof (int));
16   if (*i != 33) keepit();
17 }
18 
19 /* { dg-final { scan-tree-dump-not "abort" "optimized" } } */
20 /* { dg-final { scan-tree-dump "keepit" "optimized" } } */
21 
22