diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-04-27 17:14:21 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-04-27 17:14:21 +0000 |
commit | 14d56ef43ff4921c6749f7340212fbb743fdbb9b (patch) | |
tree | fbb418a495231685738bd81a0acc81e75bb16ccd /lib/CodeGen/CGRecordLayoutBuilder.cpp | |
parent | 34a99e7ef27d40fd116061249ae2c4eee6486c01 (diff) |
Some refactoring of my ms_struct patch.
// rdar://8823265 related.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130311 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGRecordLayoutBuilder.cpp')
-rw-r--r-- | lib/CodeGen/CGRecordLayoutBuilder.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp index d202b6e825..3d9fd88613 100644 --- a/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -753,10 +753,7 @@ bool CGRecordLayoutBuilder::LayoutFields(const RecordDecl *D) { // Zero-length bitfields following non-bitfield members are // ignored: const FieldDecl *FD = (*Field); - // FIXME. Refactor into common code as it is used in several places. - if (FD->isBitField() && LastFD && !LastFD->isBitField() && - FD->getBitWidth()-> - EvaluateAsInt(Types.getContext()).getZExtValue() == 0) { + if (Types.getContext().ZeroBitfieldFollowsNonBitfield(FD, LastFD)) { --FieldNo; continue; } @@ -999,9 +996,7 @@ CGRecordLayout *CodeGenTypes::ComputeRecordLayout(const RecordDecl *D) { if (IsMsStruct) { // Zero-length bitfields following non-bitfield members are // ignored: - if (FD->isBitField() && LastFD && !LastFD->isBitField() && - FD->getBitWidth()-> - EvaluateAsInt(getContext()).getZExtValue() == 0) { + if (getContext().ZeroBitfieldFollowsNonBitfield(FD, LastFD)) { --i; continue; } |