summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-11-01 15:14:51 +0000
committerAnders Carlsson <andersca@mac.com>2010-11-01 15:14:51 +0000
commit09814d3f3a050393baf1cf74641a3e63ec8f4ee3 (patch)
treef135fd8d1611cd770f869c84241e20edf6e15f29
parentf09b6c9c85a7fd8b5b999c1ce4ae1766c2565e0b (diff)
downloadbcm5719-llvm-09814d3f3a050393baf1cf74641a3e63ec8f4ee3.tar.gz
bcm5719-llvm-09814d3f3a050393baf1cf74641a3e63ec8f4ee3.zip
Don't update empty field subobjects for bitfields. Fixes PR8519.
llvm-svn: 117921
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index c878c25f416..0fe180d551d 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -494,7 +494,9 @@ void EmptySubobjectMap::UpdateEmptyFieldSubobjects(const CXXRecordDecl *RD,
for (CXXRecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end();
I != E; ++I, ++FieldNo) {
const FieldDecl *FD = *I;
-
+ if (FD->isBitField())
+ continue;
+
CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
UpdateEmptyFieldSubobjects(FD, FieldOffset);
OpenPOWER on IntegriCloud