| // PR c++/48911 |
| // { dg-do compile { target c++11 } } |
| |
| #define SA(X) static_assert((X),#X) |
| |
| struct A |
| { |
| constexpr A () : a (6) {} |
| int a; |
| }; |
| |
| int |
| main () |
| { |
| constexpr int a[2] = { 42 }; |
| constexpr int i = a[1]; |
| SA(i==0); |
| constexpr int b[1] = { }; |
| constexpr int j = b[0]; |
| SA(j==0); |
| constexpr char c[2] = "a"; |
| constexpr char k = c[1]; |
| SA(k==0); |
| constexpr char d[2] = ""; |
| constexpr char l = d[1]; |
| SA(l==0); |
| constexpr wchar_t e[2] = L"a"; |
| constexpr wchar_t m = e[1]; |
| SA(m==0); |
| constexpr wchar_t f[2] = L""; |
| constexpr wchar_t n = f[1]; |
| SA(n==0); |
| constexpr A g[2] = { A () }; |
| constexpr A o = g[0]; |
| SA(o.a == 6); |
| constexpr A p = g[1]; |
| SA(p.a == 6); |
| } |