Finish implementing (de-)serialization of the CXXDefinitionData bits
needed for implicit move constructors and move assignment
operators. Fixes PR10847.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139144 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/PCH/cxx-implicit-moves.cpp b/test/PCH/cxx-implicit-moves.cpp
new file mode 100644
index 0000000..fed2a19
--- /dev/null
+++ b/test/PCH/cxx-implicit-moves.cpp
@@ -0,0 +1,23 @@
+// Test with PCH
+// RUN: %clang_cc1 -std=c++0x -x c++-header -emit-pch -o %t %s
+// RUN: %clang_cc1 -std=c++0x -include-pch %t -verify %s
+
+// PR10847
+#ifndef HEADER
+#define HEADER
+struct NSSize {
+  double width;
+  double height;
+};
+typedef struct NSSize NSSize;
+
+static inline NSSize NSMakeSize(double w, double h) {
+    NSSize s = { w, h };
+    return s;
+}
+#else
+float test(float v1, float v2) {
+	NSSize s = NSMakeSize(v1, v2);
+	return s.width;
+}
+#endif