move the hackaround for PR6537 to catch unions as well,
fixing the ICE in PR7151


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113130 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/designated-initializers.c b/test/CodeGen/designated-initializers.c
index 49f57ad..312d785 100644
--- a/test/CodeGen/designated-initializers.c
+++ b/test/CodeGen/designated-initializers.c
@@ -8,10 +8,10 @@
 // CHECK: @u = global %union.anon zeroinitializer
 union { int i; float f; } u = { };
 
-// CHECK: @u2 = global %0 { i32 0, [4 x i8] undef }
+// CHECK: @u2 = global %1 { i32 0, [4 x i8] undef }
 union { int i; double f; } u2 = { };
 
-// CHECK: @u3 = global %1 zeroinitializer
+// CHECK: @u3 = global %2 zeroinitializer
 union { double f; int i; } u3 = { };
 
 // CHECK: @b = global [2 x i32] [i32 0, i32 22]
@@ -19,7 +19,7 @@
   [1] = 22
 };
 
-int main(int argc, char **argv)
+void test1(int argc, char **argv)
 {
   // CHECK: internal global %struct.foo { i8* null, i32 1024 }
   static struct foo foo = {
@@ -33,5 +33,24 @@
   // CHECK-NOT: call void @llvm.memset
   union { int i; float f; } u3;
 
-  // CHECK: ret i32
+  // CHECK: ret void
+}
+
+
+// PR7151
+struct S {
+  int nkeys;
+  int *keys;
+  union {
+    void *data;
+  };
+};
+
+void test2() {
+  struct S *btkr;
+  
+  *btkr = (struct S) {
+    .keys  = 0,
+    { .data  = 0 },
+  };
 }