diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/pr38505.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr38505.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38505.c b/gcc/testsuite/gcc.c-torture/compile/pr38505.c new file mode 100644 index 000000000..b3b4a10c7 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr38505.c @@ -0,0 +1,23 @@ +/* PR middle-end/38505 */ +/* { dg-do compile } */ + +struct S +{ + unsigned short a[50]; + unsigned short b[20]; +}; +extern void bar (struct S *); +extern void baz (unsigned short *); +extern unsigned short d[]; + +void +foo (void) +{ + struct S s; + unsigned short g[50]; + + baz (g); + __builtin_memcpy (&s, g, sizeof (g)); + __builtin_memcpy (s.b, d, sizeof (s.b)); + bar (&s); +} |