Given the following: 1 double __thread data; 2 double __thread * ptr = &data;
leads to following error diagnostic: % gcc -c t.c t.c:3: error: initializer element is not constant compiled with: gcc version 4.1.1 20060525 (Red Hat 4.1.1-1) Given that both 'data' and 'ptr' are thread local, can the address of 'data' be considered as constant? If 'ptr' were declared at file scope, then the initializer would be problematic, but as a thread-local declaration, the initializer appears to be non-ambiguous. -- Summary: thread-local ptr initialized to address of thread-local misclassified as non-constant initializer Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gary at intrepid dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28141