36 lines · cpp
1struct __attribute__((trivial_abi)) S_Trivial {2 ~S_Trivial() {}3 int ivar = 10;4};5 6S_Trivial takeTrivial(S_Trivial inVal)7{8 S_Trivial ret_val = inVal;9 ret_val.ivar = 30;10 return ret_val; // Set a breakpoint here11}12 13struct S_NotTrivial {14 ~S_NotTrivial() {}15 int ivar = 10;16};17 18S_NotTrivial takeNotTrivial(S_NotTrivial inVal)19{20 S_NotTrivial ret_val = inVal;21 ret_val.ivar = 30;22 return ret_val; // Set a breakpoint here23}24 25int26main()27{28 S_Trivial inVal, outVal;29 outVal = takeTrivial(inVal);30 31 S_NotTrivial inNotVal, outNotVal;32 outNotVal = takeNotTrivial(inNotVal);33 34 return 0; // Set another for return value35}36