http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53249
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> 2012-05-06 14:28:55 UTC --- A small testcase: [hjl@gnu-6 pr53249]$ cat x.i struct gomp_task { struct gomp_task *parent; }; struct gomp_thread { int foo1; struct gomp_task *task; }; extern __thread struct gomp_thread gomp_tls_data; void __attribute__ ((noinline)) gomp_end_task (void) { struct gomp_thread *thr = &gomp_tls_data; struct gomp_task *task = thr->task; thr->task = task->parent; } [hjl@gnu-6 pr53249]$