Add __builtion_unreachable to vector::size(), vector::capacity()
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / nsdmi-aggr18.C
blob567b8ee96d9d46a6133ffb598c253dc3b4c69ea4
1 // PR c++/100252
2 // { dg-do compile { target c++14 } }
4 struct B { };
6 struct A {
7   int x;
8   int y = x;
9   constexpr operator B() { return B{}; }
12 struct C {
13   int x = 42;
14   B b = A{x};
17 C c1 = {};
18 C c2 = { 42 };
19 constexpr C c3 = {};
20 constexpr C c4 = { 42 };
22 struct D {
23   int x = 42;
24   B b = (true, A{x});
27 D d1 = {};
28 D d2 = { 42 };
29 constexpr D d3 = {};
30 constexpr D d4 = { 42 };
32 struct E {
33   int x = 42;
34   B b = (A{x});
37 E e1 = {};
38 E e2 = { 42 };
39 constexpr E e3 = {};
40 constexpr E e4 = { 42 };
42 struct F {
43   int x = 42;
44   B b = (A{x});
47 F f1 = {};
48 F f2 = { 42 };
49 constexpr F f3 = {};
50 constexpr F f4 = { 42 };
52 void
53 g (C c5 = C{}, C c6 = C{ 42 }, D d5 = D{}, D d6 = D{ 42 },
54    E e5 = E{}, E e6 = E{ 42 }, F f5 = F{}, F f6 = F{ 42 })