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

Reply via email to