From: Anders Carlsson Date: Sat, 26 Sep 2009 01:09:35 +0000 (+0000) Subject: Use NextOffset when laying out a field. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e41038723bf77132674f55b12f60e24e5473b33;p=clang Use NextOffset when laying out a field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82828 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/RecordLayoutBuilder.cpp b/lib/AST/RecordLayoutBuilder.cpp index 470907012b..d84b0d1300 100644 --- a/lib/AST/RecordLayoutBuilder.cpp +++ b/lib/AST/RecordLayoutBuilder.cpp @@ -513,7 +513,7 @@ void ASTRecordLayoutBuilder::LayoutFields(const RecordDecl *D) { void ASTRecordLayoutBuilder::LayoutField(const FieldDecl *D) { bool FieldPacked = Packed; - uint64_t FieldOffset = IsUnion ? 0 : Size; + uint64_t FieldOffset = IsUnion ? 0 : NextOffset; uint64_t FieldSize; unsigned FieldAlign; diff --git a/test/SemaCXX/empty-class-layout.cpp b/test/SemaCXX/empty-class-layout.cpp index ce6506553d..e4e62aa369 100644 --- a/test/SemaCXX/empty-class-layout.cpp +++ b/test/SemaCXX/empty-class-layout.cpp @@ -57,3 +57,8 @@ SA(9, sizeof(S5) == 2); struct S6 : S5 { }; SA(10, sizeof(S6) == 2); + +struct S7 : Empty { + void *v; +}; +SA(11, sizeof(S7) == 8);