xref: /llvm-project/lldb/test/API/lang/cpp/trivial_abi/main.cpp (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1 struct __attribute__((trivial_abi)) S_Trivial {
~S_TrivialS_Trivial2   ~S_Trivial() {}
3   int ivar = 10;
4 };
5 
takeTrivial(S_Trivial inVal)6 S_Trivial takeTrivial(S_Trivial inVal)
7 {
8   S_Trivial ret_val = inVal;
9   ret_val.ivar = 30;
10   return ret_val;   // Set a breakpoint here
11 }
12 
13 struct S_NotTrivial {
~S_NotTrivialS_NotTrivial14   ~S_NotTrivial() {}
15   int ivar = 10;
16 };
17 
takeNotTrivial(S_NotTrivial inVal)18 S_NotTrivial takeNotTrivial(S_NotTrivial inVal)
19 {
20   S_NotTrivial ret_val = inVal;
21   ret_val.ivar = 30;
22   return ret_val;   // Set a breakpoint here
23 }
24 
25 int
main()26 main()
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 value
35 }
36