/* { dg-do compile } */ | |
/* { dg-options "-O0" } */ | |
/* { dg-require-effective-target tls } */ | |
struct gomp_team_state | |
{ | |
struct gomp_team_state *prev_ts; | |
unsigned team_id; | |
unsigned level; | |
}; | |
struct gomp_thread | |
{ | |
void *data; | |
struct gomp_team_state ts; | |
}; | |
extern __thread struct gomp_thread gomp_tls_data; | |
int | |
foo (int level) | |
{ | |
struct gomp_team_state *ts = &gomp_tls_data.ts; | |
if (level < 0 || level > ts->level) | |
return -1; | |
return ts->team_id; | |
} |