diff options
author | Anders Carlsson <andersca@mac.com> | 2009-11-22 19:13:51 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-11-22 19:13:51 +0000 |
commit | ba958400a28412d02a0a6ba8af7920e24f70e87b (patch) | |
tree | 97f621647ff1bcc4608b975f8b2c8e37d37a4e35 /clang/test/SemaCXX/class-layout.cpp | |
parent | 1299f36af18a566f092ac15e76030a4512ea64b0 (diff) | |
download | bcm5719-llvm-ba958400a28412d02a0a6ba8af7920e24f70e87b.tar.gz bcm5719-llvm-ba958400a28412d02a0a6ba8af7920e24f70e87b.zip |
When laying out bitfields, make sure that the data size is always aligned to a byte. This fixes PR5580.
llvm-svn: 89611
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 56f41bfbdb9..b5971723a70 100644 --- a/clang/test/SemaCXX/class-layout.cpp +++ b/clang/test/SemaCXX/class-layout.cpp @@ -47,3 +47,20 @@ struct G { G(); }; struct H : G { }; SA(6, sizeof(H) == 1); + +// PR5580 +namespace PR5580 { + +class A { bool iv0 : 1; }; +SA(7, sizeof(A) == 1); + +class B : A { bool iv0 : 1; }; +SA(8, sizeof(B) == 2); + +struct C { bool iv0 : 1; }; +SA(9, sizeof(C) == 1); + +struct D : C { bool iv0 : 1; }; +SA(10, sizeof(D) == 2); + +} |