1 /* { dg-do compile { target { ! { ia32 } } } } */
2 /* { dg-require-effective-target maybe_x32 } */
3 /* { dg-options "-O2 -mx32 -ftls-model=initial-exec -maddress-mode=short" } */
4 
5 struct gomp_task
6 {
7   struct gomp_task *parent;
8 };
9 
10 struct gomp_thread
11 {
12   int foo1;
13   struct gomp_task *task;
14 };
15 
16 extern __thread struct gomp_thread gomp_tls_data;
17 
18 void
19 __attribute__ ((noinline))
gomp_end_task(void)20 gomp_end_task (void)
21 {
22   struct gomp_thread *thr = &gomp_tls_data;
23   struct gomp_task *task = thr->task;
24 
25   thr->task = task->parent;
26 }
27