From 54b6d01685ef3b3bce4f0b1e9262291a9d535725 Mon Sep 17 00:00:00 2001 From: OCHyams Date: Fri, 19 Feb 2021 08:44:32 +0000 Subject: [PATCH] [debuginfo-tests] Recommit test sret.cpp This test was accidently removed when the directory structure was shuffled around for dexter in f78c236efda8. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D96968 --- debuginfo-tests/llgdb-tests/sret.cpp | 71 ++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 debuginfo-tests/llgdb-tests/sret.cpp diff --git a/debuginfo-tests/llgdb-tests/sret.cpp b/debuginfo-tests/llgdb-tests/sret.cpp new file mode 100644 index 0000000..640015f --- /dev/null +++ b/debuginfo-tests/llgdb-tests/sret.cpp @@ -0,0 +1,71 @@ +// 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; +} -- 2.7.4