| // RUN: %clang_cc1 -emit-llvm-only -triple armv7-apple-darwin -fdump-record-layouts %s 2>/dev/null \ |
| // RUN: | FileCheck %s |
| |
| // rdar://22275433 |
| |
| #pragma ms_struct on |
| |
| union A { |
| unsigned long long x : 32; |
| unsigned long long y : 32; |
| } a; |
| // CHECK:*** Dumping AST Record Layout |
| // CHECK-NEXT: 0 | union A |
| // CHECK-NEXT: 0:0-31 | unsigned long long x |
| // CHECK-NEXT: 0:0-31 | unsigned long long y |
| // CHECK-NEXT: | [sizeof=8, align=1] |
| |
| union B { |
| __attribute__((aligned(4))) |
| unsigned long long x : 32; |
| unsigned long long y : 32; |
| } b; |
| // CHECK:*** Dumping AST Record Layout |
| // CHECK-NEXT: 0 | union B |
| // CHECK-NEXT: 0:0-31 | unsigned long long x |
| // CHECK-NEXT: 0:0-31 | unsigned long long y |
| // CHECK-NEXT: | [sizeof=8, align=1] |
| |
| union C { |
| unsigned long long : 0; |
| unsigned short y : 8; |
| } c; |
| // CHECK:*** Dumping AST Record Layout |
| // CHECK-NEXT: 0 | union C |
| // CHECK-NEXT: 0:- | unsigned long long |
| // CHECK-NEXT: 0:0-7 | unsigned short y |
| // CHECK-NEXT: | [sizeof=2, align=1] |
| |
| union D { |
| unsigned long long : 0; |
| unsigned short : 0; |
| } d; |
| // CHECK:*** Dumping AST Record Layout |
| // CHECK-NEXT: 0 | union D |
| // CHECK-NEXT: 0:- | unsigned long long |
| // CHECK-NEXT: 0:- | unsigned short |
| // CHECK-NEXT: | [sizeof=1, align=1] |
| |