annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 // PR c++/90938 - Initializing array with {1} works, but not {0}
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 // { dg-do compile { target c++20 } }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3 // { dg-options "-Wall" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5 struct A { int i; };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 struct B { A a[2]; };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8 static const constexpr A a0 = { 0 };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 static const constexpr A a_ = { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 template <B> struct X { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 typedef X<B{ }> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 typedef X<B{{A{ }}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 typedef X<B{{A{ 0 }}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 typedef X<B{{a_}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 typedef X<B{{a0}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 typedef X<B{{a_, A{ }}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 typedef X<B{{a_, A{ 0 }}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20 typedef X<B{{a_, a_}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 typedef X<B{{a_, a0}}> XB;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 struct C { constexpr C () = default; };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 struct D { C c[2]; };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 static const constexpr C c_ = { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 template <D> struct Y { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
31 typedef Y<D{ }> YD;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
32 typedef Y<D{C { }}> YD;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
33 typedef Y<D{{c_}}> YD;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
34 typedef Y<D{C{ }, C{ }}> YD;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
35 typedef Y<D{C{ }, c_}> YD;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
36 typedef Y<D{{c_, c_}}> YD;