// RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clangxx %target_itanium_abi_host_triple %t.o -o %t.out // RUN: %test_debuginfo %s %t.out // Radar 8775834 // DEBUGGER: break 62 // DEBUGGER: r // DEBUGGER: p a // CHECK: ${{[0-9]+}} = // LLDB does not print artificial members. // CHECK: {{(_vptr\$A =)?.*}}m_int = 12 class A { public: A (int i=0); A (const A& rhs); const A& operator= (const A& rhs); virtual ~A() {} int get_int(); protected: int m_int; }; A::A (int i) : m_int(i) { } A::A (const A& rhs) : m_int (rhs.m_int) { } const A & A::operator =(const A& rhs) { m_int = rhs.m_int; return *this; } int A::get_int() { return m_int; } class B { public: B () {} A AInstance(); }; A B::AInstance() { A a(12); return a; } int main (int argc, char const *argv[]) { B b; int return_val = b.AInstance().get_int(); A a(b.AInstance()); return return_val; }