[llvm-commits] CVS: llvm/test/C++Frontend/2007-05-15-FieldAccess.cpp

Chris Lattner clattner at apple.com
Mon May 14 23:54:04 PDT 2007


> Add a test case for PR1420: http://llvm.org/PR1420

Please don't check in xfailed tests, I just went through and cleaned  
these all out! Please attach this to the bug instead.  When fixed,  
the testcase can be committed.

-Chris

>
> ---
> Diffs of the changes:  (+35 -0)
>
>  2007-05-15-FieldAccess.cpp |   35 +++++++++++++++++++++++++++++++++++
>  1 files changed, 35 insertions(+)
>
>
> Index: llvm/test/C++Frontend/2007-05-15-FieldAccess.cpp
> diff -c /dev/null llvm/test/C++Frontend/2007-05-15-FieldAccess.cpp:1.1
> *** /dev/null	Tue May 15 01:52:25 2007
> --- llvm/test/C++Frontend/2007-05-15-FieldAccess.cpp	Tue May 15  
> 01:52:15 2007
> ***************
> *** 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;
> + }
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list