// { dg-do compile } // { dg-require-effective-target c++17 } // { dg-options "-O -Wuninitialized" } #include struct X { X() = default; X(X const& r) : i(r.i) {} int i; }; struct Y { Y() : x() {} X x; std::optional o; }; struct Z { Y y; explicit Z(Y y) : y(y) {} }; void f(Y const&); void test() { Y const y; Z z(y); z.y.o = 1; auto const w = z; f(w.y); }