diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2007-05-15 06:52:15 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2007-05-15 06:52:15 +0000 |
commit | 8ff18f162bc6d9479b326ec234e3d681d3768387 (patch) | |
tree | b854464544daecbf36399118e96a6f64102eb526 /test | |
parent | ce3e2bff8bd22ef63d10923c9d0fbab922e00957 (diff) | |
download | external_llvm-8ff18f162bc6d9479b326ec234e3d681d3768387.zip external_llvm-8ff18f162bc6d9479b326ec234e3d681d3768387.tar.gz external_llvm-8ff18f162bc6d9479b326ec234e3d681d3768387.tar.bz2 |
Add a test case for PR1420
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37082 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/C++Frontend/2007-05-15-FieldAccess.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/C++Frontend/2007-05-15-FieldAccess.cpp b/test/C++Frontend/2007-05-15-FieldAccess.cpp new file mode 100644 index 0000000..d2e5b22 --- /dev/null +++ b/test/C++Frontend/2007-05-15-FieldAccess.cpp @@ -0,0 +1,35 @@ +// Test case for PR1420 +// RUN: %llvmgxx %s -O0 -o %t.exe +// RUN: %t.exe > %t.out +// RUN: grep {sizeof(bitFieldStruct) == 8} %t.out +// RUN: grep {Offset bitFieldStruct.i = 0} %t.out +// RUN: grep {Offset bitFieldStruct.c2 = 7} %t.out +// XFAIL: * + +#include <stdio.h> + +class bitFieldStruct { + public: + int i; + unsigned char c:7; + int s:17; + char c2; +}; + +int main() +{ + printf("sizeof(bitFieldStruct) == %d\n", sizeof(bitFieldStruct)); + + if (sizeof(bitFieldStruct) != 2 * sizeof(int)) + printf("bitFieldStruct should be %d but is %d \n", + 2 * sizeof(int), sizeof(bitFieldStruct)); + + bitFieldStruct x; + + char* xip = (char*) &x.i; + char* xc2p = (char*) &x.c2; + printf("Offset bitFieldStruct.i = %d\n", xip - xip); + printf("Offset bitFieldStruct.c2 = %d\n", xc2p - xip); + + return 0; +} |