Less incorrect handling of zero-length bitfields. Radars 7992077 and 8093043.
authorStuart Hastings <stuart@apple.com>
Wed, 23 Jun 2010 00:31:14 +0000 (00:31 +0000)
committerStuart Hastings <stuart@apple.com>
Wed, 23 Jun 2010 00:31:14 +0000 (00:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106611 91177308-0d34-0410-b5e6-96231b3b80d8

test/FrontendC++/2010-06-22-BitfieldInit.cpp [new file with mode: 0644]
test/FrontendC++/2010-06-22-ZeroBitfield.cpp [new file with mode: 0644]

diff --git a/test/FrontendC++/2010-06-22-BitfieldInit.cpp b/test/FrontendC++/2010-06-22-BitfieldInit.cpp
new file mode 100644 (file)
index 0000000..1cfe1f9
--- /dev/null
@@ -0,0 +1,20 @@
+// RUN: %llvmgxx -g -c %s
+struct TEST2
+{
+  int subid:32;
+  int :0;
+};
+
+typedef struct _TEST3
+{
+  TEST2 foo;
+  TEST2 foo2;
+} TEST3;
+
+TEST3 test =
+  {
+    {0},
+    {0}
+  };
+
+int main() { return 0; }
diff --git a/test/FrontendC++/2010-06-22-ZeroBitfield.cpp b/test/FrontendC++/2010-06-22-ZeroBitfield.cpp
new file mode 100644 (file)
index 0000000..c979f8d
--- /dev/null
@@ -0,0 +1,5 @@
+// RUN: %llvmgxx -g -c %s
+struct s8_0 { unsigned : 0; };
+struct s8_1 { double x; };
+struct s8 { s8_0 a; s8_1 b; };
+s8 f8() { return s8(); }