| // This structure has a non-trivial copy constructor so | |
| // it needs to be passed by reference. | |
| struct PassByRef { | |
| PassByRef() = default; | |
| PassByRef(const PassByRef &p){x = p.x;}; | |
| int x = 11223344; | |
| }; | |
| PassByRef returnPassByRef() { return PassByRef(); } | |
| int takePassByRef(PassByRef p) { | |
| return p.x; | |
| } | |
| int main() { | |
| PassByRef p = returnPassByRef(); | |
| p.x = 42; | |
| return takePassByRef(p); // break here | |
| } |