1 /* { dg-do compile } */ 2 /* { dg-options "-O0" } */ 3 /* { dg-require-effective-target tls } */ 4 5 struct gomp_team_state 6 { 7 struct gomp_team_state *prev_ts; 8 unsigned team_id; 9 unsigned level; 10 }; 11 struct gomp_thread 12 { 13 void *data; 14 struct gomp_team_state ts; 15 }; 16 extern __thread struct gomp_thread gomp_tls_data; 17 int foo(int level)18foo (int level) 19 { 20 struct gomp_team_state *ts = &gomp_tls_data.ts; 21 if (level < 0 || level > ts->level) 22 return -1; 23 return ts->team_id; 24 } 25