1 | // RUN: %clang_cc1 -emit-llvm-only -triple armv7-apple-darwin -fdump-record-layouts %s 2>/dev/null \ |
2 | // RUN: | FileCheck %s |
3 | |
4 | // rdar://22275433 |
5 | |
6 | #pragma ms_struct on |
7 | |
8 | union A { |
9 | unsigned long long x : 32; |
10 | unsigned long long y : 32; |
11 | } a; |
12 | // CHECK:*** Dumping AST Record Layout |
13 | // CHECK-NEXT: 0 | union A |
14 | // CHECK-NEXT: 0:0-31 | unsigned long long x |
15 | // CHECK-NEXT: 0:0-31 | unsigned long long y |
16 | // CHECK-NEXT: | [sizeof=8, align=1] |
17 | |
18 | union B { |
19 | __attribute__((aligned(4))) |
20 | unsigned long long x : 32; |
21 | unsigned long long y : 32; |
22 | } b; |
23 | // CHECK:*** Dumping AST Record Layout |
24 | // CHECK-NEXT: 0 | union B |
25 | // CHECK-NEXT: 0:0-31 | unsigned long long x |
26 | // CHECK-NEXT: 0:0-31 | unsigned long long y |
27 | // CHECK-NEXT: | [sizeof=8, align=1] |
28 | |
29 | union C { |
30 | unsigned long long : 0; |
31 | unsigned short y : 8; |
32 | } c; |
33 | // CHECK:*** Dumping AST Record Layout |
34 | // CHECK-NEXT: 0 | union C |
35 | // CHECK-NEXT: 0:- | unsigned long long |
36 | // CHECK-NEXT: 0:0-7 | unsigned short y |
37 | // CHECK-NEXT: | [sizeof=2, align=1] |
38 | |
39 | union D { |
40 | unsigned long long : 0; |
41 | unsigned short : 0; |
42 | } d; |
43 | // CHECK:*** Dumping AST Record Layout |
44 | // CHECK-NEXT: 0 | union D |
45 | // CHECK-NEXT: 0:- | unsigned long long |
46 | // CHECK-NEXT: 0:- | unsigned short |
47 | // CHECK-NEXT: | [sizeof=1, align=1] |
48 | |
49 | |