AppendBytes(NumBytesToAppend);
- if (!NumBytesToAppend)
- BitsAvailableInLastField -= FieldSize;
- else
- BitsAvailableInLastField = NumBytesToAppend * 8 - FieldSize;
+ BitsAvailableInLastField =
+ getNextFieldOffsetInBytes() * 8 - (FieldOffset + FieldSize);
}
bool CGRecordLayoutBuilder::LayoutField(const FieldDecl *D,
--- /dev/null
+// RUN: clang-cc -triple i386-unknown-unknown %s -emit-llvm -o %t &&
+// RUN: grep "struct.object_entry = type <{ i8, i8, i8, i8 }>" %t
+
+struct object_entry {
+ unsigned int type:3, pack_id:16, depth:13;
+} entries;