[PATCH] D42660: [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack

2018-01-31 Thread Alex Lorenz via Phabricator via cfe-commits
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:

[PATCH] D42660: [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack

2018-01-30 Thread John McCall via Phabricator via cfe-commits
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

[PATCH] D42660: [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack

2018-01-30 Thread Alex Lorenz via Phabricator via cfe-commits
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

[PATCH] D42660: [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack

2018-01-30 Thread Alex Lorenz via Phabricator via 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

[PATCH] D42660: [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack

2018-01-29 Thread John McCall via Phabricator via cfe-commits
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

[PATCH] D42660: [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack

2018-01-29 Thread Alex Lorenz via Phabricator via cfe-commits
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.