Previously, debuginfo-tests was expected to be checked out into clang/test and then the tests would automatically run as part of check-clang. This is not a standard workflow for handling external projects, and it brings with it some serious drawbacks such as the inability to depend on things other than clang, which we will need going forward. The goal of this patch is to migrate towards a more standard workflow. To ease the transition for build bot maintainers, this patch tries not to break the existing workflow, but instead simply deprecate it to give maintainers a chance to update the build infrastructure. Differential Revision: https://reviews.llvm.org/D39605 llvm-svn: 317925
72 lines
975 B
C++
72 lines
975 B
C++
// 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;
|
|
}
|