diff options
author | Devang Patel <dpatel@apple.com> | 2011-02-10 00:41:14 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2011-02-10 00:41:14 +0000 |
commit | d9bc8e0817cdfed6b8968100fc708df5fea8ebbe (patch) | |
tree | 9e5beedca1be45b4e4a9cb227eed6c7f92fabe7c /debuginfo-tests | |
parent | 425909dd419c49465e67020420bdad0234a36f42 (diff) | |
download | bcm5719-llvm-d9bc8e0817cdfed6b8968100fc708df5fea8ebbe.tar.gz bcm5719-llvm-d9bc8e0817cdfed6b8968100fc708df5fea8ebbe.zip |
test case for r125249.
llvm-svn: 125250
Diffstat (limited to 'debuginfo-tests')
-rw-r--r-- | debuginfo-tests/sret.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/debuginfo-tests/sret.cpp b/debuginfo-tests/sret.cpp new file mode 100644 index 00000000000..7fd23852712 --- /dev/null +++ b/debuginfo-tests/sret.cpp @@ -0,0 +1,70 @@ +// RUN: %clangxx -O0 -g %s -c -o %t.o +// RUN: %clangxx %t.o -o %t.out +// RUN: %test_debuginfo %s %t.out +// Radar 8775834 +// DEBUGGER: break 60 +// DEBUGGER: r +// DEBUGGER: p a +// CHECK: $1 = (A &) +// CHECK: _vptr$A = +// CHECK: 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; +} + +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; +} |