Finish off rules for z-length bitfields in ms_struct
structs. // rdar://8823265

llvm-svn: 130783
diff --git a/clang/test/CodeGen/ms_struct-bitfield-1.c b/clang/test/CodeGen/ms_struct-bitfield-1.c
new file mode 100644
index 0000000..10c6e2a
--- /dev/null
+++ b/clang/test/CodeGen/ms_struct-bitfield-1.c
@@ -0,0 +1,45 @@
+// RUN: %clang_cc1 -emit-llvm-only  -triple x86_64-apple-darwin9 %s
+// rdar://8823265
+
+#define ATTR __attribute__((__ms_struct__))
+
+struct {
+                   unsigned int bf_1 : 12;
+                   unsigned int : 0;
+                   unsigned int bf_2 : 12;
+} ATTR t1;
+static int a1[(sizeof(t1) == 8) -1];
+
+struct
+{
+                   char foo : 4;
+                   short : 0;
+                   char bar;
+} ATTR t2;
+static int a2[(sizeof(t2) == 4) -1];
+
+#pragma ms_struct on
+struct
+{
+                   char foo : 4;
+                   short : 0;
+                   char bar;
+} t3;
+#pragma ms_struct off
+static int a3[(sizeof(t3) == 4) -1];
+
+struct
+{
+  char foo : 6;
+  long : 0;
+} ATTR t4;
+static int a4[(sizeof(t4) == 8) -1];
+
+struct
+{
+  char foo : 4;
+  short : 0;
+  char bar : 8;
+} ATTR t5;
+static int a5[(sizeof(t5) == 4) -1];
+