diff options
author | Anders Carlsson <andersca@mac.com> | 2010-06-08 19:09:24 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2010-06-08 19:09:24 +0000 |
commit | 45f5b54d67215639ae6585d12df5133e99180c2b (patch) | |
tree | 3a5606c88e9d6778fa13f646673af2e0101f5806 /test/SemaCXX/empty-class-layout.cpp | |
parent | 55d7d36f48b9b113e30de1721e83a639d14094b0 (diff) |
Correctly handle fields with virtual bases containing empty subobjects.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105628 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/empty-class-layout.cpp')
-rw-r--r-- | test/SemaCXX/empty-class-layout.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/test/SemaCXX/empty-class-layout.cpp b/test/SemaCXX/empty-class-layout.cpp index bc2d58abd9..0b46bf045a 100644 --- a/test/SemaCXX/empty-class-layout.cpp +++ b/test/SemaCXX/empty-class-layout.cpp @@ -117,4 +117,30 @@ struct B { A a; }; struct C : B, Empty { }; SA(0, sizeof(C) == 2); -}
\ No newline at end of file +} + +namespace Test5 { + +// Test that B::Empty isn't laid out at offset 0. +struct Empty { }; +struct Field : virtual Empty { }; +struct A { + Field f; +}; +struct B : A, Empty { }; +SA(0, sizeof(B) == 16); + +} + +namespace Test6 { + +// Test that B::A isn't laid out at offset 0. +struct Empty { }; +struct Field : virtual Empty { }; +struct A { + Field f; +}; +struct B : Empty, A { }; +SA(0, sizeof(B) == 16); + +} |