| /* { dg-additional-options "-O2" } */ |
| /* { dg-additional-options "-fipa-pta -fdump-tree-optimized" } */ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| typedef __SIZE_TYPE__ size_t; |
| void *malloc (size_t); |
| void free (void *); |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #define N 2 |
| |
| void |
| foo (void) |
| { |
| unsigned int *a = (unsigned int *)malloc (N * sizeof (unsigned int)); |
| unsigned int *b = a; |
| unsigned int *c = (unsigned int *)malloc (N * sizeof (unsigned int)); |
| |
| #pragma acc kernels pcopyout (a[0:N], b[0:N], c[0:N]) |
| { |
| a[0] = 0; |
| b[0] = 1; |
| c[0] = a[0]; |
| } |
| |
| free (a); |
| free (c); |
| } |
| |
| /* { dg-final { scan-tree-dump-times "(?n)= 0;$" 1 "optimized" { target c } } } */ |
| /* { dg-final { scan-tree-dump-times "(?n)= 1;$" 1 "optimized" { target c } } } */ |