aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp0x/constexpr-odr1.C
blob: cf3f95f0565c30de0d62f382c9eab8e584956108 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// PR c++/92062 - ODR-use ignored for static member of class template.
// { dg-do run { target c++11 } }

template<int> struct A {
  static const bool x;
  static_assert(&x, ""); // odr-uses A<...>::x
};

int g;

template<int I>
const bool A<I>::x = (g = 42, false);

void f(A<0>) {}        // A<0> must be complete, so is instantiated
int main()
{
  if (g != 42)
    __builtin_abort ();
}