Revision: 127042 Author: dpatel Date: 2007-05-08 11:24:04 -0700 (Tue, 08 May 2007)
Log Message: ----------- If new bit field's starting offset is not at byte boundary _AND_ the field's starting offset is outside already allocated bytes for enclosing structure then - Do not insert PadBytes array if PadBytes are zero. - Update Field size to count PadBits. Modified Paths: -------------- apple-local/branches/llvm/gcc/llvm-types.cpp Modified: apple-local/branches/llvm/gcc/llvm-types.cpp =================================================================== --- apple-local/branches/llvm/gcc/llvm-types.cpp 2007-05-08 18:09:27 UTC (rev 127041) +++ apple-local/branches/llvm/gcc/llvm-types.cpp 2007-05-08 18:24:04 UTC (rev 127042) @@ -1395,15 +1395,18 @@ } else PadBytes = StartOffsetInBits/8-FirstUnallocatedByte; - const Type *Pad = Type::Int8Ty; - if (PadBytes != 1) - Pad = ArrayType::get(Pad, PadBytes); - Info.addElement(Pad, FirstUnallocatedByte, PadBytes); + if (PadBytes) { + const Type *Pad = Type::Int8Ty; + if (PadBytes != 1) + Pad = ArrayType::get(Pad, PadBytes); + Info.addElement(Pad, FirstUnallocatedByte, PadBytes); + } + FirstUnallocatedByte = StartOffsetInBits/8; // This field will use some of the bits from this PadBytes, if // starting offset is not at byte boundry. if (StartOffsetFromByteBoundry != 0) - FieldSizeInBits = PadBits; + FieldSizeInBits += PadBits; } // Now, Field starts at FirstUnallocatedByte and everything is aligned. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits