// { dg-do compile }
// { dg-additional-options "-fdump-tree-gimple" }

// Test implicit marking of declare target to.

int foo () { return 1; }
int bar () { return 2; }	// Implicitly marked (due to b)
int baz () { return 3; }	// Implicitly marked (due to d via c)
int qux () { return 4; }	// Implicitly marked (due to g via f and e)

int a = foo ();
int b = bar ();	// Explicitly marked
int c = baz ();	// Implicitly marked (due to d)
int *d = &c;	// Explicitly marked
int e = qux ();	// Implicitly marked (due to g via f)
int f = e + 1;	// Implicitly marked (due to g)
int *g = &f;	// Explicitly marked

#pragma omp declare target to(b, d, g)

// { dg-final { scan-tree-dump-not "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nint foo \\\(\\\)" "gimple" } }
// { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nint bar \\\(\\\)" "gimple" } }
// { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nint baz \\\(\\\)" "gimple" } }
// { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nint qux \\\(\\\)" "gimple" } }
// { dg-final { scan-assembler-not "\\\.offload_var_table:\\n.+\\\.quad\\s+a" { target { offloading_enabled } } } }
// { dg-final { scan-assembler "\\\.offload_var_table:\\n.+\\\.quad\\s+b" { target { offloading_enabled } } } }
// { dg-final { scan-assembler "\\\.offload_var_table:\\n.+\\\.quad\\s+c" { target { offloading_enabled } } } }
// { dg-final { scan-assembler "\\\.offload_var_table:\\n.+\\\.quad\\s+d" { target { offloading_enabled } } } }
// { dg-final { scan-assembler "\\\.offload_var_table:\\n.+\\\.quad\\s+e" { target { offloading_enabled } } } }
// { dg-final { scan-assembler "\\\.offload_var_table:\\n.+\\\.quad\\s+f" { target { offloading_enabled } } } }
// { dg-final { scan-assembler "\\\.offload_var_table:\\n.+\\\.quad\\s+g" { target { offloading_enabled } } } }
