blob: 00ebab9c628fee6d4a1506512f3ade02d0e92d12 [file] [log] [blame]
/* PR c++/102640 */
/* { dg-do compile } */
/* { dg-additional-options "-fdump-tree-gimple -fdump-tree-omplower" } */
/* Verify var[123] are mapped without any copying, because they are
mentioned in declare target directive to clauses. */
/* { dg-final { scan-tree-dump-not "firstprivate\\\(var\[123]\\\)" "gimple" } } */
/* { dg-final { scan-tree-dump-not ".omp_data_arr.\[0-9]*.var" "omplower" } } */
/* { dg-final { scan-tree-dump-not ".omp_data_i->var" "omplower" } } */
void
foo (void)
{
extern int var1;
#pragma omp declare target to (var1)
#pragma omp target
var1++;
}
int
bar (int x)
{
extern int var2;
#pragma omp declare target to (var2)
if (x)
return var2;
#pragma omp target
var2++;
return -1;
}
#pragma omp declare target to (bar)
#pragma omp declare target
int
baz (int x)
{
extern int var3;
if (x)
return var3;
#pragma omp target
var3++;
return -1;
}
#pragma omp end declare target