This revision was automatically updated to reflect the committed changes.
Closed by commit rC323921: [PR32482] Fix bitfield layout for -mms-bitfield and
pragma pack (authored by arphaman, committed by ).
Repository:
rC Clang
https://reviews.llvm.org/D42660
Files:
lib/AST/RecordLayoutBuilder
rjmccall accepted this revision.
rjmccall added a comment.
This revision is now accepted and ready to land.
Oh, that makes much more sense, thanks.
Repository:
rL LLVM
https://reviews.llvm.org/D42660
___
cfe-commits mailing list
cfe-commits@lists
arphaman added a comment.
Oops, that logic turned out to be incorrect. We simply have to start a new
storage unit when the new bitfield's size is wider than the available bits.
Repository:
rL LLVM
https://reviews.llvm.org/D42660
___
cfe-commits
arphaman updated this revision to Diff 132034.
arphaman added a comment.
Herald added a subscriber: llvm-commits.
Fix packing logic.
Repository:
rL LLVM
https://reviews.llvm.org/D42660
Files:
lib/AST/RecordLayoutBuilder.cpp
test/CodeGen/mms-bitfields.c
test/Sema/mms-bitfields.c
Index
rjmccall added inline comments.
Comment at: lib/AST/RecordLayoutBuilder.cpp:1564
unsigned MaxFieldAlignmentInBits = Context.toBits(MaxFieldAlignment);
+ unsigned RecordFieldAlign = FieldAlign;
if (!MaxFieldAlignment.isZero() && FieldSize) {
I think naming
arphaman created this revision.
arphaman added reviewers: ahatanak, rjmccall.
Herald added a subscriber: jkorous-apple.
Clang currently generates wrong record layout for `-mms-bitfield` and `#pragma
pack`. https://godbolt.org/g/nQ4rVW shows how MSVC and GCC generate different
layout to Clang.
T