12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple i686-pc-win32 -fms-extensions -fdump-record-layouts -fsyntax-only %s 2>/dev/null \
- // RUN: | FileCheck %s
- // RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple x86_64-pc-win32 -fms-extensions -fdump-record-layouts -fsyntax-only %s 2>/dev/null \
- // RUN: | FileCheck %s
- struct EmptyIntMemb {
- int FlexArrayMemb[0];
- };
- // CHECK: *** Dumping AST Record Layout
- // CHECK-NEXT: 0 | struct EmptyIntMemb
- // CHECK-NEXT: 0 | int [0] FlexArrayMemb
- // CHECK-NEXT: | [sizeof=4, align=4
- struct EmptyLongLongMemb {
- long long FlexArrayMemb[0];
- };
- // CHECK: *** Dumping AST Record Layout
- // CHECK-NEXT: 0 | struct EmptyLongLongMemb
- // CHECK-NEXT: 0 | long long [0] FlexArrayMemb
- // CHECK-NEXT: | [sizeof=4, align=8
- struct EmptyAligned2LongLongMemb {
- long long __declspec(align(2)) FlexArrayMemb[0];
- };
- // CHECK: *** Dumping AST Record Layout
- // CHECK-NEXT: 0 | struct EmptyAligned2LongLongMemb
- // CHECK-NEXT: 0 | long long [0] FlexArrayMemb
- // CHECK-NEXT: | [sizeof=4, align=8
- struct EmptyAligned8LongLongMemb {
- long long __declspec(align(8)) FlexArrayMemb[0];
- };
- // CHECK: *** Dumping AST Record Layout
- // CHECK-NEXT: 0 | struct EmptyAligned8LongLongMemb
- // CHECK-NEXT: 0 | long long [0] FlexArrayMemb
- // CHECK-NEXT: | [sizeof=8, align=8
- #pragma pack(1)
- struct __declspec(align(4)) EmptyPackedAligned4LongLongMemb {
- long long FlexArrayMemb[0];
- };
- #pragma pack()
- // CHECK: *** Dumping AST Record Layout
- // CHECK-NEXT: 0 | struct EmptyPackedAligned4LongLongMemb
- // CHECK-NEXT: 0 | long long [0] FlexArrayMemb
- // CHECK-NEXT: | [sizeof=4, align=4
- #pragma pack(1)
- struct EmptyPackedAligned8LongLongMemb {
- long long __declspec(align(8)) FlexArrayMemb[0];
- };
- #pragma pack()
- // CHECK: *** Dumping AST Record Layout
- // CHECK-NEXT: 0 | struct EmptyPackedAligned8LongLongMemb
- // CHECK-NEXT: 0 | long long [0] FlexArrayMemb
- // CHECK-NEXT: | [sizeof=8, align=8
- int a[
- sizeof(struct EmptyIntMemb)+
- sizeof(struct EmptyLongLongMemb)+
- sizeof(struct EmptyAligned2LongLongMemb)+
- sizeof(struct EmptyAligned8LongLongMemb)+
- sizeof(struct EmptyPackedAligned4LongLongMemb)+
- sizeof(struct EmptyPackedAligned8LongLongMemb)+
- 0];
|