brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 48eb811 Raw
71 lines · c
1// RUN: %clang_cc1 -fno-rtti -triple i686-pc-win32 -fms-extensions -fdump-record-layouts -fsyntax-only %s 2>/dev/null \2// RUN:            | FileCheck %s3// RUN: %clang_cc1 -fno-rtti -triple x86_64-pc-win32 -fms-extensions -fdump-record-layouts -fsyntax-only %s 2>/dev/null \4// RUN:            | FileCheck %s5 6struct EmptyIntMemb {7  int FlexArrayMemb[0];8};9// CHECK:       *** Dumping AST Record Layout10// CHECK-NEXT:  0 | struct EmptyIntMemb11// CHECK-NEXT:  0 | int[0] FlexArrayMemb12// CHECK-NEXT:    | [sizeof=4, align=413 14struct EmptyLongLongMemb {15  long long FlexArrayMemb[0];16};17// CHECK: *** Dumping AST Record Layout18// CHECK-NEXT:  0 | struct EmptyLongLongMemb19// CHECK-NEXT:  0 | long long[0] FlexArrayMemb20// CHECK-NEXT:    | [sizeof=4, align=821 22struct EmptyAligned2LongLongMemb {23  long long __declspec(align(2)) FlexArrayMemb[0];24};25 26// CHECK: *** Dumping AST Record Layout27// CHECK-NEXT:  0 | struct EmptyAligned2LongLongMemb28// CHECK-NEXT:  0 | long long[0] FlexArrayMemb29// CHECK-NEXT:    | [sizeof=4, align=830 31struct EmptyAligned8LongLongMemb {32  long long __declspec(align(8)) FlexArrayMemb[0];33};34 35// CHECK: *** Dumping AST Record Layout36// CHECK-NEXT:  0 | struct EmptyAligned8LongLongMemb37// CHECK-NEXT:  0 | long long[0] FlexArrayMemb38// CHECK-NEXT:    | [sizeof=8, align=839 40#pragma pack(1)41struct __declspec(align(4)) EmptyPackedAligned4LongLongMemb {42  long long FlexArrayMemb[0];43};44#pragma pack()45 46// CHECK: *** Dumping AST Record Layout47// CHECK-NEXT:  0 | struct EmptyPackedAligned4LongLongMemb48// CHECK-NEXT:  0 | long long[0] FlexArrayMemb49// CHECK-NEXT:    | [sizeof=4, align=450 51#pragma pack(1)52struct EmptyPackedAligned8LongLongMemb {53  long long __declspec(align(8)) FlexArrayMemb[0];54};55#pragma pack()56 57// CHECK: *** Dumping AST Record Layout58// CHECK-NEXT:  0 | struct EmptyPackedAligned8LongLongMemb59// CHECK-NEXT:  0 | long long[0] FlexArrayMemb60// CHECK-NEXT:    | [sizeof=8, align=861 62 63int a[64sizeof(struct EmptyIntMemb)+65sizeof(struct EmptyLongLongMemb)+66sizeof(struct EmptyAligned2LongLongMemb)+67sizeof(struct EmptyAligned8LongLongMemb)+68sizeof(struct EmptyPackedAligned4LongLongMemb)+69sizeof(struct EmptyPackedAligned8LongLongMemb)+700];71