aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-05-21 18:10:53 +0000
committerChris Lattner <sabre@nondot.org>2003-05-21 18:10:53 +0000
commit5a7a849403d516d7c0487897fb9409135a6c8d2d (patch)
tree6bd956d221deafadc6b1a9b00c33a62ca64721f0
parent4e840d4db71faebb52f5e94ca2a8d1c00ecef09b (diff)
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6264 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/C++Frontend/2003-05-21-BitfieldHandling.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/C++Frontend/2003-05-21-BitfieldHandling.c b/test/C++Frontend/2003-05-21-BitfieldHandling.c
new file mode 100644
index 0000000000..12508a9313
--- /dev/null
+++ b/test/C++Frontend/2003-05-21-BitfieldHandling.c
@@ -0,0 +1,59 @@
+struct test_empty {
+} e;
+int Esize = sizeof(e);
+
+struct rtx_def {
+ unsigned short code;
+ long long :3;
+ int mode : 8;
+ long long :0;
+ long long x :31;
+ //long long y:31;
+} N = {2, 7, 1 };
+int Nsize = sizeof(N); // Size = 8
+
+struct test1 {
+ char x:1;
+ long long :0;
+} F1; int F1size = sizeof(F1); // Size = 4
+
+struct test2 {
+ long long x :4;
+} F2; int F2size = sizeof(F2); // Size = 4
+
+struct test3 {
+ char x:1;
+ long long :20;
+} F3; int F3size = sizeof(F3); // Size = 3
+
+struct test4 {
+ char x:1;
+ long long :21;
+ short Y : 14;
+} F4; int F4size = sizeof(F4); // Size = 6
+
+struct test5 {
+ char x:1;
+ long long :17;
+ char Y : 1;
+} F5; int F5size = sizeof(F5); // Size = 3
+
+struct test6 {
+ char x:1;
+ long long :42;
+ int Y : 21;
+} F6; int F6size = sizeof(F6); // Size = 8
+
+struct test {
+ char c;
+ char d : 3;
+ char e: 3;
+ int : 0;
+ char f;
+ char :0;
+ long long x : 4;
+} M; int Msize = sizeof(M); // Size = 8
+
+int main() {
+ return 0;
+}