test case for r125249.

llvm-svn: 125250
GitOrigin-RevId: d9bc8e0817cdfed6b8968100fc708df5fea8ebbe
diff --git a/sret.cpp b/sret.cpp
new file mode 100644
index 0000000..7fd2385
--- /dev/null
+++ b/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;
+}