xref: /llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-synthval/main.cpp (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht class myInt {
2*99451b44SJordan Rupprecht     private: int theValue;
myInt()3*99451b44SJordan Rupprecht     public: myInt() : theValue(0) {}
myInt(int _x)4*99451b44SJordan Rupprecht     public: myInt(int _x) : theValue(_x) {}
val()5*99451b44SJordan Rupprecht     int val() { return theValue; }
6*99451b44SJordan Rupprecht };
7*99451b44SJordan Rupprecht 
8*99451b44SJordan Rupprecht class myIntAndStuff {
9*99451b44SJordan Rupprecht private:
10*99451b44SJordan Rupprecht   int theValue;
11*99451b44SJordan Rupprecht   double theExtraFluff;
12*99451b44SJordan Rupprecht public:
myIntAndStuff()13*99451b44SJordan Rupprecht   myIntAndStuff() : theValue(0), theExtraFluff(1.25) {}
myIntAndStuff(int _x)14*99451b44SJordan Rupprecht   myIntAndStuff(int _x) : theValue(_x), theExtraFluff(1.25) {}
val()15*99451b44SJordan Rupprecht   int val() { return theValue; }
16*99451b44SJordan Rupprecht };
17*99451b44SJordan Rupprecht 
18*99451b44SJordan Rupprecht class myArray {
19*99451b44SJordan Rupprecht public:
20*99451b44SJordan Rupprecht     int array[16];
21*99451b44SJordan Rupprecht };
22*99451b44SJordan Rupprecht 
23*99451b44SJordan Rupprecht class hasAnInt {
24*99451b44SJordan Rupprecht     public:
25*99451b44SJordan Rupprecht         myInt theInt;
hasAnInt()26*99451b44SJordan Rupprecht         hasAnInt() : theInt(42) {}
27*99451b44SJordan Rupprecht };
28*99451b44SJordan Rupprecht 
operator +(myInt x,myInt y)29*99451b44SJordan Rupprecht myInt operator + (myInt x, myInt y) { return myInt(x.val() + y.val()); }
operator +(myInt x,myIntAndStuff y)30*99451b44SJordan Rupprecht myInt operator + (myInt x, myIntAndStuff y) { return myInt(x.val() + y.val()); }
31*99451b44SJordan Rupprecht 
main()32*99451b44SJordan Rupprecht int main() {
33*99451b44SJordan Rupprecht     myInt x{3};
34*99451b44SJordan Rupprecht     myInt y{4};
35*99451b44SJordan Rupprecht     myInt z {x+y};
36*99451b44SJordan Rupprecht     myIntAndStuff q {z.val()+1};
37*99451b44SJordan Rupprecht     hasAnInt hi;
38*99451b44SJordan Rupprecht     myArray ma;
39*99451b44SJordan Rupprecht 
40*99451b44SJordan Rupprecht     return z.val(); // break here
41*99451b44SJordan Rupprecht }
42