Clang Project

clang_source_code/test/CodeGenCXX/override-bit-field-layout.cpp
1// 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
2
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
17// 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
31void use_structs() {
32  S1 s1s[sizeof(S1)];
33  S2 s2s[sizeof(S2)];
34  S3 s3s[sizeof(S3)];
35  S4 s4s[sizeof(S4)];
36}
37