summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/tls/diag-1.C
blob: af538719d243732d3ef9fe3580346bae57a54f46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Valid __thread specifiers.
// { dg-require-effective-target tls }

__thread int g1;
extern __thread int g2;
static __thread int g3;

void foo()
{
  extern __thread int l1;
  static __thread int l2;
}

struct A {
  static __thread int i;
};

__thread int A::i = 42;

template <typename T> struct B {
  static __thread T t;
};

template <typename T>
__thread T B<T>::t = 42;

void bar ()
{
  int j = B<int>::t;
  int k = B<const int>::t;
}