diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:04:05 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:04:05 +0000 |
commit | 676fbe8105eeb6ff4bb2ed261cb212fcfdbe7b63 (patch) | |
tree | 02a1ac369cb734d0abfa5000dd86e5b7797e6a74 /test/CodeGenCXX/override-layout-packed-base.cpp | |
parent | c7e70c433efc6953dc3888b9fbf9f3512d7da2b0 (diff) |
Diffstat (limited to 'test/CodeGenCXX/override-layout-packed-base.cpp')
-rw-r--r-- | test/CodeGenCXX/override-layout-packed-base.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/test/CodeGenCXX/override-layout-packed-base.cpp b/test/CodeGenCXX/override-layout-packed-base.cpp index 26ed4b5d815a5..03255f2f6ebfc 100644 --- a/test/CodeGenCXX/override-layout-packed-base.cpp +++ b/test/CodeGenCXX/override-layout-packed-base.cpp @@ -1,26 +1,40 @@ -// RUN: %clang_cc1 -w -fdump-record-layouts-simple -foverride-record-layout=%S/Inputs/override-layout-packed-base.layout %s | FileCheck %s +// 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 + +//#pragma pack(push, 1) // CHECK: Type: class B<0> +// CHECK: Size:40 // CHECK: FieldOffsets: [0, 32] // CHECK: Type: class B<1> +// CHECK: Size:40 // CHECK: FieldOffsets: [0, 32] -//#pragma pack(push, 1) template<int I> class B { int _b1; char _b2; }; -//#pragma pack(pop) // CHECK: Type: class C +// CHECK: Size:88 // CHECK: FieldOffsets: [80] class C : B<0>, B<1> { char _c; }; +// CHECK: Type: class D +// CHECK: Size:120 +// CHECK: FieldOffsets: [32] + +class D : virtual B<0>, virtual B<1> { + char _d; +}; + +//#pragma pack(pop) + void use_structs() { C cs[sizeof(C)]; + D ds[sizeof(D)]; } |