When synthesizing implicit copy/move constructors and copy/move assignment
operators, don't make an initializer or sub-operation for zero-width
bitfields.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133221 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/implicit-copy-constructor.cpp b/test/CodeGenCXX/implicit-copy-constructor.cpp
index 5008601..8bc84a5 100644
--- a/test/CodeGenCXX/implicit-copy-constructor.cpp
+++ b/test/CodeGenCXX/implicit-copy-constructor.cpp
@@ -70,3 +70,13 @@
   pimpl pdata;
   pdata.f0( new impl(*i));
 }
+
+// rdar://problem/9598341
+namespace test3 {
+  struct A { A(const A&); A&operator=(const A&); };
+  struct B { A a; unsigned : 0; };
+  void test(const B &x) {
+    B y = x;
+    y = x;
+  }
+}