]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - packages/Python/lldbsuite/test/functionalities/frame-diagnose/inheritance/main.cpp
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / packages / Python / lldbsuite / test / functionalities / frame-diagnose / inheritance / main.cpp
1 #include <stdio.h>
2 #include <stdint.h>
3
4 class A
5 {
6 public:
7     A(int a) : 
8         m_a(a)
9     {
10     }
11     virtual ~A(){}
12     virtual int get2() const { return m_a; }
13     virtual int get() const { return m_a; }
14 protected:
15     int m_a;    
16 };
17
18 class B : public A
19 {
20 public:
21     B(int a, int b) : 
22         A(a),
23         m_b(b)
24     {
25     }
26
27     ~B() override
28     {
29     }
30
31     int get2() const override
32     {
33         return m_b;
34     }
35     int get() const override
36     {
37         return m_b;
38     }   
39             
40 protected:
41     int m_b;
42 };
43
44 struct C
45 {
46     C(int c) : m_c(c){}
47     virtual ~C(){}
48     int m_c;
49 };
50
51 class D : public C, public B
52 {
53 public:
54     D(int a, int b, int c, int d) : 
55         C(c),
56         B(a, b),
57         m_d(d)
58     {
59     }
60 protected:
61     int m_d;
62 };
63 int main (int argc, char const *argv[], char const *envp[])
64 {
65     D *good_d = new D(1, 2, 3, 4);
66     D *d = nullptr;
67     return d->get();
68 }
69