/* This testcase checks whether SWIG correctly parses the 'thread_local' storage specifier */

%module cpp11_thread_local

%inline %{
struct ThreadLocals {
//  thread_local int tval; // members must also be declared static
  static thread_local int stval;
  thread_local static int tsval;
  static thread_local const int stcval88 = 88;
  thread_local static const int tscval99 = 99;
};
thread_local int tval;
static thread_local int stval;
thread_local static int tsval;
extern thread_local int etval;
thread_local extern int teval;
extern "C" thread_local int ectval;
extern "C++" thread_local int ecpptval;

thread_local int ThreadLocals::stval = 11;
thread_local int ThreadLocals::tsval = 22;
#if !defined(_MSC_VER)
thread_local const int ThreadLocals::stcval88;
thread_local const int ThreadLocals::tscval99;
#endif
%}

%{
// externs
thread_local int etval = 33;
thread_local int teval = 44;
thread_local int ectval = 55;
thread_local int ecpptval = 66;
%}
