#include <iostream>
#define PRNT std::cout << __PRETTY_FUNCTION__ << "\n"
struct A {
A() {PRNT;}
A(const A&) {PRNT;}
A(A&&) {PRNT;}
~A() {PRNT;}
};
A someFun() {
A a;
return a;
}
int main() {
A b = someFun();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIFBSTlQgc3RkOjpjb3V0IDw8IF9fUFJFVFRZX0ZVTkNUSU9OX18gPDwgIlxuIgogCnN0cnVjdCBBIHsKICAgIEEoKSB7UFJOVDt9CiAgICBBKGNvbnN0IEEmKSB7UFJOVDt9CiAgICBBKEEmJikge1BSTlQ7fQogICAgfkEoKSB7UFJOVDt9Cn07CgpBIHNvbWVGdW4oKSB7CiAgICBBIGE7CiAgICByZXR1cm4gYTsKfQoKaW50IG1haW4oKSB7CiAgICBBIGIgPSBzb21lRnVuKCk7Cn0=