blob: dee7944f6a5edeee53428fb3114c2afc95206075 [file] [log] [blame]
Aleksandr Urakov867c2a72019-03-13 13:38:12 +00001// RUN: %clang_cc1 -w -triple=x86_64-pc-win32 -fms-compatibility -fdump-record-layouts-simple -foverride-record-layout=%S/Inputs/override-bit-field-layout.layout %s | FileCheck %s
Richard Smith83a4c872018-07-13 21:07:42 +00002
3// CHECK: Type: struct S1
4// CHECK: FieldOffsets: [0, 11]
5struct S1 {
6 short a : 3;
7 short b : 5;
8};
9
10// CHECK: Type: struct S2
11// CHECK: FieldOffsets: [64]
12struct S2 {
13 virtual ~S2() = default;
14 short a : 3;
15};
16
Aleksandr Urakov867c2a72019-03-13 13:38:12 +000017// CHECK: Type: struct S3
18// CHECK: Size:32
19// CHECK: FieldOffsets: [0, 1]
20struct S3 {
21 int a : 1;
22 int b : 2;
23};
24
25// CHECK: Type: struct S4
26// CHECK: FieldOffsets: [32]
27struct S4 : S3 {
28 char c;
29};
30
Richard Smith83a4c872018-07-13 21:07:42 +000031void use_structs() {
32 S1 s1s[sizeof(S1)];
33 S2 s2s[sizeof(S2)];
Aleksandr Urakov867c2a72019-03-13 13:38:12 +000034 S3 s3s[sizeof(S3)];
35 S4 s4s[sizeof(S4)];
Richard Smith83a4c872018-07-13 21:07:42 +000036}