xref: /llvm-project/lldb/test/API/functionalities/dynamic_value_child_count/pass-to-base.cpp (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht #include <stdio.h>
2*99451b44SJordan Rupprecht #include <memory>
3*99451b44SJordan Rupprecht 
4*99451b44SJordan Rupprecht class BaseClass
5*99451b44SJordan Rupprecht {
6*99451b44SJordan Rupprecht public:
7*99451b44SJordan Rupprecht     BaseClass();
~BaseClass()8*99451b44SJordan Rupprecht     virtual ~BaseClass() { }
9*99451b44SJordan Rupprecht };
10*99451b44SJordan Rupprecht 
11*99451b44SJordan Rupprecht class DerivedClass : public BaseClass
12*99451b44SJordan Rupprecht {
13*99451b44SJordan Rupprecht public:
14*99451b44SJordan Rupprecht     DerivedClass();
~DerivedClass()15*99451b44SJordan Rupprecht     virtual ~DerivedClass() { }
16*99451b44SJordan Rupprecht protected:
17*99451b44SJordan Rupprecht     int mem;
18*99451b44SJordan Rupprecht };
19*99451b44SJordan Rupprecht 
BaseClass()20*99451b44SJordan Rupprecht BaseClass::BaseClass()
21*99451b44SJordan Rupprecht {
22*99451b44SJordan Rupprecht }
23*99451b44SJordan Rupprecht 
DerivedClass()24*99451b44SJordan Rupprecht DerivedClass::DerivedClass() : BaseClass()
25*99451b44SJordan Rupprecht {
26*99451b44SJordan Rupprecht     mem = 101;
27*99451b44SJordan Rupprecht }
28*99451b44SJordan Rupprecht 
29*99451b44SJordan Rupprecht int
main(int argc,char ** argv)30*99451b44SJordan Rupprecht main (int argc, char **argv)
31*99451b44SJordan Rupprecht {
32*99451b44SJordan Rupprecht   BaseClass *b = nullptr; // Break here and check b has 0 children
33*99451b44SJordan Rupprecht   b = new DerivedClass();  // Break here and check b still has 0 children
34*99451b44SJordan Rupprecht   b = nullptr;  // Break here and check b has one child now
35*99451b44SJordan Rupprecht   return 0; // Break here and check b has 0 children again
36*99451b44SJordan Rupprecht }
37