blob: 90145f8c194ccf315d5a5d6ec0d5e2ea5a4e2274 [file] [log] [blame]
Devang Pateld9bc8e02011-02-10 00:41:14 +00001// RUN: %clangxx -O0 -g %s -c -o %t.o
2// RUN: %clangxx %t.o -o %t.out
3// RUN: %test_debuginfo %s %t.out
4// Radar 8775834
Devang Patel443e46f12011-04-28 00:02:06 +00005// DEBUGGER: break 61
Devang Pateld9bc8e02011-02-10 00:41:14 +00006// DEBUGGER: r
7// DEBUGGER: p a
8// CHECK: $1 = (A &)
9// CHECK: _vptr$A =
10// CHECK: m_int = 12
11
12class A
13{
14public:
15 A (int i=0);
16 A (const A& rhs);
17 const A&
18 operator= (const A& rhs);
19 virtual ~A() {}
20
21 int get_int();
22
23protected:
24 int m_int;
25};
26
27A::A (int i) :
28 m_int(i)
29{
30}
31
32A::A (const A& rhs) :
33 m_int (rhs.m_int)
34{
35}
36
37const A &
38A::operator =(const A& rhs)
39{
40 m_int = rhs.m_int;
Devang Patel443e46f12011-04-28 00:02:06 +000041 return *this;
Devang Pateld9bc8e02011-02-10 00:41:14 +000042}
43
44int A::get_int()
45{
46 return m_int;
47}
48
49class B
50{
51public:
52 B () {}
53
54 A AInstance();
55};
56
57A
58B::AInstance()
59{
60 A a(12);
61 return a;
62}
63
64int main (int argc, char const *argv[])
65{
66 B b;
67 int return_val = b.AInstance().get_int();
68
69 A a(b.AInstance());
70 return return_val;
71}