/* 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 ectval2 = 56; } extern "C++" thread_local int ecpptval; extern "C++" { thread_local int ecpptval2 = 67; } 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; extern "C" { thread_local int ectval = 55; } extern "C++" { thread_local int ecpptval = 66; } %}