Handle references correctly when synthesizing copy constructors.

With this change, the clang-on-clang test result is now

Expected Passes    : 224
Unexpected Failures: 37

Which means that we can compile over 80% of clang with clang! :)

llvm-svn: 89799
diff --git a/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp b/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
index 3b8f782..2e950eb 100644
--- a/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
+++ b/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
@@ -102,6 +102,17 @@
   m1.pr();
 }
 
+struct A {
+};
+
+struct B : A {
+  A &a;
+};
+
+void f(const B &b1) {
+  B b2(b1);
+}
+
 // CHECK-LP64: .globl  __ZN1XC1ERKS_
 // CHECK-LP64: .weak_definition __ZN1XC1ERKS_
 // CHECK-LP64: __ZN1XC1ERKS_: