| // { dg-do compile } |
| // { dg-additional-options "-fdump-tree-gimple" } |
| |
| #include <cstdlib> |
| |
| typedef float real_t; |
| |
| struct foo { |
| real_t *data; |
| }; |
| |
| #define n 1024 |
| |
| int test3() { |
| real_t *a = (real_t *)malloc(n * sizeof(real_t)); |
| struct foo b; |
| b.data = (real_t *)malloc(n * sizeof(real_t)); |
| |
| #pragma acc data copyin(a[0:n], b, b.data[0:n]) |
| // { dg-final { scan-tree-dump {map\(to:\*_[0-9]+ \[len: [0-9]+\]\) map\(attach:b.data \[bias: 0\]\) map\(to:b \[len: [0-9]+\]\) map\(to:\*a \[len: [0-9]+\]\)} "gimple" } } |
| { } |
| |
| free (b.data); |
| free (a); |
| |
| return 0; |
| } |