diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/20090618-1.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/torture/20090618-1.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/20090618-1.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/20090618-1.c new file mode 100644 index 000000000..8b601d62c --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/20090618-1.c @@ -0,0 +1,24 @@ +/* { dg-do run } */ +/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */ + +extern void abort (void); + +struct X { int *p; int *q; }; + +int foo(void) +{ + int i = 0, j = 1; + struct X x, y; + int **p; + y.p = &i; + x.q = &j; + p = __builtin_mempcpy (&x, &y, sizeof (int *)); + return **p; +} + +int main() +{ + if (foo() != 1) + abort (); + return 0; +} |