You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.2 KiB
70 lines
2.2 KiB
// 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];
|
|
|