summaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/override-layout-packed-base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenCXX/override-layout-packed-base.cpp')
-rw-r--r--test/CodeGenCXX/override-layout-packed-base.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CodeGenCXX/override-layout-packed-base.cpp b/test/CodeGenCXX/override-layout-packed-base.cpp
new file mode 100644
index 0000000000000..26ed4b5d815a5
--- /dev/null
+++ b/test/CodeGenCXX/override-layout-packed-base.cpp
@@ -0,0 +1,26 @@
+// RUN: %clang_cc1 -w -fdump-record-layouts-simple -foverride-record-layout=%S/Inputs/override-layout-packed-base.layout %s | FileCheck %s
+
+// CHECK: Type: class B<0>
+// CHECK: FieldOffsets: [0, 32]
+
+// CHECK: Type: class B<1>
+// 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: FieldOffsets: [80]
+
+class C : B<0>, B<1> {
+ char _c;
+};
+
+void use_structs() {
+ C cs[sizeof(C)];
+}