blob: 7fd23852712214871ca21cebb4606b97680a085d [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
5// DEBUGGER: break 60
6// 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;
41}
42
43int A::get_int()
44{
45 return m_int;
46}
47
48class B
49{
50public:
51 B () {}
52
53 A AInstance();
54};
55
56A
57B::AInstance()
58{
59 A a(12);
60 return a;
61}
62
63int main (int argc, char const *argv[])
64{
65 B b;
66 int return_val = b.AInstance().get_int();
67
68 A a(b.AInstance());
69 return return_val;
70}