emit padding as undef values, take 2
merge also a few tests I had here for this feature, and FileCheck'ize one file

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101535 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/global-init.c b/test/CodeGen/global-init.c
index e166fb4..651f7d8 100644
--- a/test/CodeGen/global-init.c
+++ b/test/CodeGen/global-init.c
@@ -12,19 +12,28 @@
 // CHECK: @c = weak global i32 0
 
 
-
 // Since this is marked const, it should get weak_odr linkage, since all
 // definitions have to be the same.
 // CHECK: @d = weak_odr constant i32 0
 const int d __attribute__((weak))= 0;
 
+// PR6168 "too many undefs"
+struct ManyFields {
+  int a;
+  int b;
+  int c;
+  char d;
+  int e;
+  int f;
+};
+
+// CHECK: global %0 { i32 1, i32 2, i32 0, i8 0, i32 0, i32 0 }
+struct ManyFields FewInits = {1, 2};
 
 
 // NOTE: tentative definitions are processed at the end of the translation unit.
 
 // This shouldn't be emitted as common because it has an explicit section.
 // rdar://7119244
-int b __attribute__((section("foo")));
-
 // CHECK: @b = global i32 0, section "foo"
-
+int b __attribute__((section("foo")));