Mangle record types as decls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82843 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/PR5050-constructor-conversion.cpp b/test/CodeGenCXX/PR5050-constructor-conversion.cpp
index 7c70687..e5f722c 100644
--- a/test/CodeGenCXX/PR5050-constructor-conversion.cpp
+++ b/test/CodeGenCXX/PR5050-constructor-conversion.cpp
@@ -12,8 +12,8 @@
   return b;
 }
 
-// CHECK-LP64: call     __ZN1AC1ERK1Ai
+// CHECK-LP64: call     __ZN1AC1ERKS_i
 
-// CHECK-LP32: call     L__ZN1AC1ERK1Ai
+// CHECK-LP32: call     L__ZN1AC1ERKS_i
 
 
diff --git a/test/CodeGenCXX/constructor-default-arg.cpp b/test/CodeGenCXX/constructor-default-arg.cpp
index 6691912..7e6a7cd 100644
--- a/test/CodeGenCXX/constructor-default-arg.cpp
+++ b/test/CodeGenCXX/constructor-default-arg.cpp
@@ -31,10 +31,10 @@
   X d(a, 5, 6);
 }
 
-// CHECK-LP64: call __ZN1XC1ERK1Xiii
-// CHECK-LP64: call __ZN1XC1ERK1Xiii
-// CHECK-LP64: call __ZN1XC1ERK1Xiii
+// CHECK-LP64: call __ZN1XC1ERKS_iii
+// CHECK-LP64: call __ZN1XC1ERKS_iii
+// CHECK-LP64: call __ZN1XC1ERKS_iii
 
-// CHECK-LP32: call L__ZN1XC1ERK1Xiii
-// CHECK-LP32: call L__ZN1XC1ERK1Xiii
-// CHECK-LP32: call L__ZN1XC1ERK1Xiii
+// CHECK-LP32: call L__ZN1XC1ERKS_iii
+// CHECK-LP32: call L__ZN1XC1ERKS_iii
+// CHECK-LP32: call L__ZN1XC1ERKS_iii
diff --git a/test/CodeGenCXX/copy-assign-synthesis-1.cpp b/test/CodeGenCXX/copy-assign-synthesis-1.cpp
index 3c24b12..d4a93af 100644
--- a/test/CodeGenCXX/copy-assign-synthesis-1.cpp
+++ b/test/CodeGenCXX/copy-assign-synthesis-1.cpp
@@ -93,17 +93,17 @@
   dstY.pr();
 }
 
-// CHECK-LP64: .globl   __ZN1XaSERK1X
-// CHECK-LP64: .weak_definition  __ZN1XaSERK1X
-// CHECK-LP64: __ZN1XaSERK1X:
-// CHECK-LP64: .globl   __ZN1QaSERK1Q
-// CHECK-LP64: .weak_definition  __ZN1QaSERK1Q
-// CHECK-LP64: __ZN1QaSERK1Q:
+// CHECK-LP64: .globl   __ZN1XaSERKS_
+// CHECK-LP64: .weak_definition  __ZN1XaSERKS_
+// CHECK-LP64: __ZN1XaSERKS_:
+// CHECK-LP64: .globl   __ZN1QaSERKS_
+// CHECK-LP64: .weak_definition  __ZN1QaSERKS_
+// CHECK-LP64: __ZN1QaSERKS_:
 
-// CHECK-LP32: .globl   __ZN1XaSERK1X
-// CHECK-LP32: .weak_definition  __ZN1XaSERK1X
-// CHECK-LP32: __ZN1XaSERK1X:
-// CHECK-LP32: .globl   __ZN1QaSERK1Q
-// CHECK-LP32: .weak_definition  __ZN1QaSERK1Q
-// CHECK-LP32: __ZN1QaSERK1Q:
+// CHECK-LP32: .globl   __ZN1XaSERKS_
+// CHECK-LP32: .weak_definition  __ZN1XaSERKS_
+// CHECK-LP32: __ZN1XaSERKS_:
+// CHECK-LP32: .globl   __ZN1QaSERKS_
+// CHECK-LP32: .weak_definition  __ZN1QaSERKS_
+// CHECK-LP32: __ZN1QaSERKS_:
 
diff --git a/test/CodeGenCXX/copy-constructor-synthesis.cpp b/test/CodeGenCXX/copy-constructor-synthesis.cpp
index 37550c4..47971af 100644
--- a/test/CodeGenCXX/copy-constructor-synthesis.cpp
+++ b/test/CodeGenCXX/copy-constructor-synthesis.cpp
@@ -101,10 +101,10 @@
   m1.pr();
 }
 
-// CHECK-LP64: .globl  __ZN1XC1ERK1X
-// CHECK-LP64: .weak_definition __ZN1XC1ERK1X
-// CHECK-LP64: __ZN1XC1ERK1X:
+// CHECK-LP64: .globl  __ZN1XC1ERKS_
+// CHECK-LP64: .weak_definition __ZN1XC1ERKS_
+// CHECK-LP64: __ZN1XC1ERKS_:
 
-// CHECK-LP32: .globl  __ZN1XC1ERK1X
-// CHECK-LP32: .weak_definition __ZN1XC1ERK1X
-// CHECK-LP32: __ZN1XC1ERK1X:
+// CHECK-LP32: .globl  __ZN1XC1ERKS_
+// CHECK-LP32: .weak_definition __ZN1XC1ERKS_
+// CHECK-LP32: __ZN1XC1ERKS_:
diff --git a/test/CodeGenCXX/mangle-subst.cpp b/test/CodeGenCXX/mangle-subst.cpp
index fb0e990..2ff375e 100644
--- a/test/CodeGenCXX/mangle-subst.cpp
+++ b/test/CodeGenCXX/mangle-subst.cpp
@@ -24,3 +24,10 @@
 
 // CHECK: define void @_Z1fN1A1AENS_1BE(
 void f(A::A a, A::B b) { }
+
+struct C {
+  struct D { };
+};
+
+// CHECK: define void @_Z1fN1C1DERS_PS_S1_(
+void f(C::D, C&, C*, C&) { }
diff --git a/test/CodeGenCXX/member-functions.cpp b/test/CodeGenCXX/member-functions.cpp
index 8ada907..29629d5 100644
--- a/test/CodeGenCXX/member-functions.cpp
+++ b/test/CodeGenCXX/member-functions.cpp
@@ -58,6 +58,6 @@
 void test3() {
   T t1, t2;
   
-  // RUN: grep "call void @_ZN1TpsERK1T" %t
+  // RUN: grep "call void @_ZN1TpsERKS_" %t
   T result = t1 + t2;
 }