// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify %s namespace PR61118 { union S { struct { int a; }; }; void f(int x, auto) { const S result { .a = x }; } void g(void) { f(0, 0); } } // end namespace PR61118 namespace GH65143 { struct Inner { int a; }; struct Outer { struct { Inner inner; }; }; template void f() { constexpr Outer x{.inner = {val}}; static_assert(x.inner.a == val); } void bar() { f<4>(); } } namespace GH62156 { union U1 { int x; float y; }; struct NonTrivial { NonTrivial(); ~NonTrivial(); }; union U2 { NonTrivial x; float y; }; void f() { U1 u{.x=2, // expected-note {{previous initialization is here}} .y=1}; // expected-error {{initializer partially overrides prior initialization of this subobject}} new U2{.x = NonTrivial{}, // expected-note {{previous initialization is here}} .y=1}; // expected-error {{initializer would partially override prior initialization of object of type 'NonTrivial' with non-trivial destruction}} } }