1 // RUN: %clang_cc1 -triple i686-windows-msvc -w -fdump-record-layouts-simple -foverride-record-layout=%S/Inputs/override-layout-packed-base.layout %s | FileCheck %s 2 3 //#pragma pack(push, 1) 4 5 // CHECK: Type: class B<0> 6 // CHECK: Size:40 7 // CHECK: FieldOffsets: [0, 32] 8 9 // CHECK: Type: class B<1> 10 // CHECK: Size:40 11 // CHECK: FieldOffsets: [0, 32] 12 13 template<int I> 14 class B { 15 int _b1; 16 char _b2; 17 }; 18 19 // CHECK: Type: class C 20 // CHECK: Size:88 21 // CHECK: FieldOffsets: [80] 22 23 class C : B<0>, B<1> { 24 char _c; 25 }; 26 27 // CHECK: Type: class D 28 // CHECK: Size:120 29 // CHECK: FieldOffsets: [32] 30 31 class D : virtual B<0>, virtual B<1> { 32 char _d; 33 }; 34 35 //#pragma pack(pop) 36 37 void use_structs() { 38 C cs[sizeof(C)]; 39 D ds[sizeof(D)]; 40 } 41