Eliminate literal 8s from LayoutUnionField by converting NumBytesToAppend to

CharUnits. No change in functionality intended.

llvm-svn: 130107
This commit is contained in:
Ken Dyck 2011-04-24 16:47:33 +00:00
parent 345a6de9b4
commit 7a0b19f978
1 changed files with 5 additions and 4 deletions

View File

@ -481,11 +481,12 @@ CGRecordLayoutBuilder::LayoutUnionField(const FieldDecl *Field,
return 0;
const llvm::Type *FieldTy = llvm::Type::getInt8Ty(Types.getLLVMContext());
unsigned NumBytesToAppend =
llvm::RoundUpToAlignment(FieldSize, 8) / 8;
CharUnits NumBytesToAppend = Types.getContext().toCharUnitsFromBits(
llvm::RoundUpToAlignment(FieldSize,
Types.getContext().Target.getCharAlign()));
if (NumBytesToAppend > 1)
FieldTy = llvm::ArrayType::get(FieldTy, NumBytesToAppend);
if (NumBytesToAppend > CharUnits::One())
FieldTy = llvm::ArrayType::get(FieldTy, NumBytesToAppend.getQuantity());
// Add the bit field info.
BitFields.insert(std::make_pair(Field,