// { dg-do run { target c++11 } } struct A; struct B { operator A (); }; struct A { A (const A &) = default; A () = default; B a; }; A a {B {}}; bool seen; B::operator A () { seen = true; return A (); } int main () { #if __cplusplus > 201703L if (!seen) __builtin_abort (); #else if (seen) __builtin_abort (); #endif }