aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp1z/inline-var9.C
blob: 43c9748877be1b02992bbea5c3335e3166c05dc8 (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
32
33
34
35
36
37
38
39
40
// PR c++/99901
// { dg-do compile { target c++11 } }
// { dg-final { scan-assembler-not "_ZN1A1aE" } }
// { dg-final { scan-assembler-not "_ZN2A21aE" } }
// { dg-final { scan-assembler-not "_ZN1CIiE1cE" } }
// { dg-final { scan-assembler "_ZN1B1bE" } }
// { dg-final { scan-assembler "_ZN2B21bE" } }
// { dg-final { scan-assembler "_ZN2B31bE" } }

struct A {
  static const int a = 5;
};

struct A2 {
  static constexpr int a = 5;
};

struct B {
  static const int b;
};
constexpr int B::b = 5;

struct B2 {
  static const int b = 5;
};
constexpr int B2::b;

struct B3 {
  static constexpr int b = 5;
};
const int B3::b;

template <class T>
struct C {
  static constexpr int c = 5;
};
template <class T>
constexpr int C<T>::c;

int i = C<int>::c;