https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98816

            Bug ID: 98816
           Summary: The thread_local specifier appear on the declaration
                    of static member function is compilied by gcc
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xmh970252187 at gmail dot com
  Target Milestone: ---

struct A{
    thread_local void static fun(){}; 
};
int main(){

}

This code can be compiled on all versions of GCC compilers. However, the
standard says: 

>The thread_­local specifier indicates that the named entity has thread storage 
>duration. It shall be applied only to the names of variables of namespace or 
>block scope and to the names of static data members. 

That means the `thread_local` specifier can be applied to static data members
rather than static member functions. In this example, the declaration of `fun`
should be ill-formed.
  • [Bug c++/98816] New: The thread... xmh970252187 at gmail dot com via Gcc-bugs

Reply via email to