Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/cpp2a/nontype-class33.C @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 // PR c++/90938 - Initializing array with {1} works, but not {0} | |
2 // { dg-do compile { target c++20 } } | |
3 // { dg-options "-Wall" } | |
4 | |
5 struct A { int i; }; | |
6 struct B { A a[2]; }; | |
7 | |
8 static const constexpr A a0 = { 0 }; | |
9 static const constexpr A a_ = { }; | |
10 | |
11 template <B> struct X { }; | |
12 | |
13 typedef X<B{ }> XB; | |
14 typedef X<B{{A{ }}}> XB; | |
15 typedef X<B{{A{ 0 }}}> XB; | |
16 typedef X<B{{a_}}> XB; | |
17 typedef X<B{{a0}}> XB; | |
18 typedef X<B{{a_, A{ }}}> XB; | |
19 typedef X<B{{a_, A{ 0 }}}> XB; | |
20 typedef X<B{{a_, a_}}> XB; | |
21 typedef X<B{{a_, a0}}> XB; | |
22 | |
23 | |
24 struct C { constexpr C () = default; }; | |
25 struct D { C c[2]; }; | |
26 | |
27 static const constexpr C c_ = { }; | |
28 | |
29 template <D> struct Y { }; | |
30 | |
31 typedef Y<D{ }> YD; | |
32 typedef Y<D{C { }}> YD; | |
33 typedef Y<D{{c_}}> YD; | |
34 typedef Y<D{C{ }, C{ }}> YD; | |
35 typedef Y<D{C{ }, c_}> YD; | |
36 typedef Y<D{{c_, c_}}> YD; |