#include <iostream>
struct traced{
traced(){ std::cout << "default ctor\n"; }
traced(traced const&){ std::cout << "copy ctor\n"; }
traced(traced&&){ std::cout << "move ctor\n"; }
};
struct X{
traced t;
};
X f(){
X x;
return x;
}
int main(){
traced t = f().t;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IHRyYWNlZHsKICB0cmFjZWQoKXsgc3RkOjpjb3V0IDw8ICJkZWZhdWx0IGN0b3JcbiI7IH0KICB0cmFjZWQodHJhY2VkIGNvbnN0Jil7IHN0ZDo6Y291dCA8PCAiY29weSBjdG9yXG4iOyB9CiAgdHJhY2VkKHRyYWNlZCYmKXsgc3RkOjpjb3V0IDw8ICJtb3ZlIGN0b3JcbiI7IH0KfTsKCnN0cnVjdCBYewogIHRyYWNlZCB0Owp9OwoKWCBmKCl7CiAgWCB4OwogIHJldHVybiB4Owp9CgppbnQgbWFpbigpewogIHRyYWNlZCB0ID0gZigpLnQ7Cn0=