When we create a non-static data member in the closure object for a
capture, make sure we actually add the field.

llvm-svn: 150135
diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
index 4c876d7..10d1e92 100644
--- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
+++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
@@ -29,3 +29,20 @@
 }
 
 // FIXME: arrays!
+
+// Check for the expected non-static data members.
+
+struct ExpectedLayout {
+  char a;
+  short b;
+};
+
+template<typename T> void capture(const T&);
+
+void test_layout(char a, short b) {
+  auto x = [=] () -> void { // expected-error{{lambda expressions are not supported yet}}
+    capture(a);
+    capture(b);
+  };
+  static_assert(sizeof(x) == sizeof(ExpectedLayout), "Layout mismatch!");
+}