summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/ms_struct-bitfield-3.c
blob: 0eba4359145e48057adfb085f3e4e7e948e35fb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// RUN: %clang_cc1 -emit-llvm-only  -triple i386-apple-darwin9 %s
// rdar://8823265

#define ATTR __attribute__((__ms_struct__))

struct _struct_0
{
  int  member_0   : 25 ;
  short  member_1   : 6 ;
  char  member_2   : 2 ;
  unsigned  short  member_3   : 1 ;
  unsigned  char  member_4   : 7 ;
  short  member_5   : 16 ;
  int  : 0 ;
  char  member_7  ;

} ATTR;

typedef struct _struct_0 struct_0;

#define size_struct_0 20

struct_0 test_struct_0 = { 18557917, 17, 3, 0, 80, 6487, 93 };
static int a[(size_struct_0 == sizeof (struct_0)) -1];

struct _struct_1 {
  int d;
  unsigned char a;
  unsigned short b:7;
  char c;
} ATTR;

typedef struct _struct_1 struct_1;

#define size_struct_1 12

struct_1 test_struct_1 = { 18557917, 'a', 3, 'b' };

static int a1[(size_struct_1 == sizeof (struct_1)) -1];

struct ten {
  long long a:3;
  long long b:3;
  char c;
} __attribute__ ((ms_struct));

#define size_struct_2 16

static int a2[(size_struct_2 == sizeof (struct ten)) -1];