diff options
author | Anders Carlsson <andersca@mac.com> | 2010-05-30 06:52:33 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2010-05-30 06:52:33 +0000 |
commit | b1fcdd063c8bfccd28dccb9466d4cd3b958f5d9a (patch) | |
tree | 0d13803e8f0489a27156dc464390098cf1af87c9 /clang/test/SemaCXX/class-layout.cpp | |
parent | 6ed3eb8a48c35727ea1b1b526d6151cfd032bce5 (diff) | |
download | bcm5719-llvm-b1fcdd063c8bfccd28dccb9466d4cd3b958f5d9a.tar.gz bcm5719-llvm-b1fcdd063c8bfccd28dccb9466d4cd3b958f5d9a.zip |
Turn on the new empty base subobject tracking code. It's a bit faster than the previous code. However, it still has quadratic performance, something which I intend to fix shortly in a subsequent patch.
llvm-svn: 105161
Diffstat (limited to 'clang/test/SemaCXX/class-layout.cpp')
-rw-r--r-- | clang/test/SemaCXX/class-layout.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/class-layout.cpp b/clang/test/SemaCXX/class-layout.cpp index 0a968c70654..d81944ab9b3 100644 --- a/clang/test/SemaCXX/class-layout.cpp +++ b/clang/test/SemaCXX/class-layout.cpp @@ -84,4 +84,21 @@ class F : virtual E { }; struct G : virtual E, F { }; SA(0, sizeof(G) == 24); + +} + +namespace Test2 { + +// Test that this somewhat complex class structure is laid out correctly. +struct A { }; +struct B : A { virtual void b(); }; +struct C : virtual B { }; +struct D : virtual A { }; +struct E : virtual B, D { }; +struct F : E, virtual C { }; +struct G : virtual F, A { }; +struct H { G g; }; + +SA(0, sizeof(H) == 24); + } |