diff options
| author | Ken Dyck <kd@kendyck.com> | 2011-04-24 16:47:33 +0000 |
|---|---|---|
| committer | Ken Dyck <kd@kendyck.com> | 2011-04-24 16:47:33 +0000 |
| commit | 7a0b19f9786a0911e60b3666c1aeac41cbd7dd41 (patch) | |
| tree | 64acbd43014a6877b357f2fc700cf159424b4259 /clang/lib/CodeGen | |
| parent | 345a6de9b44d716904d68d20606a5b65764b6818 (diff) | |
| download | bcm5719-llvm-7a0b19f9786a0911e60b3666c1aeac41cbd7dd41.tar.gz bcm5719-llvm-7a0b19f9786a0911e60b3666c1aeac41cbd7dd41.zip | |
Eliminate literal 8s from LayoutUnionField by converting NumBytesToAppend to
CharUnits. No change in functionality intended.
llvm-svn: 130107
Diffstat (limited to 'clang/lib/CodeGen')
| -rw-r--r-- | clang/lib/CodeGen/CGRecordLayoutBuilder.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp index 506066571bb..67a2ef3db9e 100644 --- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -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, |

