/* { dg-do compile } */ /* { dg-additional-options "-fdump-tree-gimple" } */ typedef struct { int *arr; } L; int main() { L *tmp; /* There shouldn't be an order dependency here... */ #pragma omp target map(to: tmp->arr) map(tofrom: tmp->arr[0:10]) { } #pragma omp target map(tofrom: tmp->arr[0:10]) map(to: tmp->arr) { } /* { dg-final { scan-tree-dump-times {map\(struct:\*tmp \[len: 1\]\) map\(alloc:tmp[._0-9]*->arr \[len: [0-9]+\]\) map\(tofrom:\*_[0-9]+ \[len: [0-9]+\]\) map\(attach:tmp[._0-9]*->arr \[bias: 0\]\)} 2 "gimple" { target { ! { nvptx*-*-* amdgcn*-*-* } } } } } */ return 0; }