The index into the actions table is a ULEB128 not a SLEB128.
[oota-llvm.git] / test / C++Frontend / 2007-05-15-FieldAccess.cpp
1 // Test case for PR1420
2 // RUN: %llvmgxx %s -O0 -o %t.exe 
3 // RUN: %t.exe > %t.out
4 // RUN: grep {sizeof(bitFieldStruct) == 8} %t.out
5 // RUN: grep {Offset bitFieldStruct.i = 0} %t.out
6 // RUN: grep {Offset bitFieldStruct.c2 = 7} %t.out
7 // XFAIL: *
8
9 #include <stdio.h>
10
11 class bitFieldStruct {
12   public:
13     int i;
14     unsigned char c:7;
15     int s:17;
16     char c2;
17 };
18
19 int main()
20 {
21   printf("sizeof(bitFieldStruct) == %d\n", sizeof(bitFieldStruct));
22
23   if (sizeof(bitFieldStruct) != 2 * sizeof(int))
24     printf("bitFieldStruct should be %d but is %d \n", 
25             2 * sizeof(int), sizeof(bitFieldStruct));
26
27   bitFieldStruct x;
28   
29   char* xip = (char*) &x.i;
30   char* xc2p = (char*) &x.c2;
31   printf("Offset bitFieldStruct.i = %d\n", xip - xip);
32   printf("Offset bitFieldStruct.c2 = %d\n", xc2p - xip);
33
34   return 0;
35 }