]> granicus.if.org Git - clang/commitdiff
Replace calls to CharUnits::fromQuantity() with ones
authorKen Dyck <ken.dyck@onsemi.com>
Tue, 18 Jan 2011 01:56:16 +0000 (01:56 +0000)
committerKen Dyck <ken.dyck@onsemi.com>
Tue, 18 Jan 2011 01:56:16 +0000 (01:56 +0000)
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123715 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/ExprConstant.cpp
lib/AST/RecordLayoutBuilder.cpp

index cb7381016369fa8e553cd19e5d3491df477230ee..f262a4acff08455c6d9b5c0f29fafd2839d179f6 100644 (file)
@@ -404,8 +404,7 @@ bool LValueExprEvaluator::VisitMemberExpr(MemberExpr *E) {
       break;
   }
 
-  Result.Offset += 
-      CharUnits::fromQuantity(RL.getFieldOffset(i) / Info.Ctx.getCharWidth());
+  Result.Offset += Info.Ctx.toCharUnitsFromBits(RL.getFieldOffset(i));
   return true;
 }
 
@@ -574,7 +573,7 @@ bool PointerExprEvaluator::VisitCastExpr(CastExpr* E) {
 
     Result.Base = BaseLV.getLValueBase();
     Result.Offset = BaseLV.getLValueOffset() + 
-      CharUnits::fromQuantity(Offset / Info.Ctx.getCharWidth());
+      Info.Ctx.toCharUnitsFromBits(Offset);
     return true;
   }
 
@@ -1481,12 +1480,9 @@ CharUnits IntExprEvaluator::GetAlignOfType(QualType T) {
   if (const ReferenceType *Ref = T->getAs<ReferenceType>())
     T = Ref->getPointeeType();
 
-  // Get information about the alignment.
-  unsigned CharSize = Info.Ctx.Target.getCharWidth();
-
   // __alignof is defined to return the preferred alignment.
-  return CharUnits::fromQuantity(
-      Info.Ctx.getPreferredTypeAlign(T.getTypePtr()) / CharSize);
+  return Info.Ctx.toCharUnitsFromBits(
+    Info.Ctx.getPreferredTypeAlign(T.getTypePtr()));
 }
 
 CharUnits IntExprEvaluator::GetAlignOfExpr(const Expr *E) {
@@ -1578,8 +1574,7 @@ bool IntExprEvaluator::VisitOffsetOfExpr(const OffsetOfExpr *E) {
           break;
       }
       assert(i < RL.getFieldCount() && "offsetof field in wrong type");
-      Result += CharUnits::fromQuantity(
-                           RL.getFieldOffset(i) / Info.Ctx.getCharWidth());
+      Result += Info.Ctx.toCharUnitsFromBits(RL.getFieldOffset(i));
       CurrentType = MemberDecl->getType().getNonReferenceType();
       break;
     }
@@ -1607,9 +1602,9 @@ bool IntExprEvaluator::VisitOffsetOfExpr(const OffsetOfExpr *E) {
         return false;
       
       // Add the offset to the base.
-      Result += CharUnits::fromQuantity(
-             RL.getBaseClassOffsetInBits(cast<CXXRecordDecl>(BaseRT->getDecl()))
-                                        / Info.Ctx.getCharWidth());
+      Result += Info.Ctx.toCharUnitsFromBits(
+             RL.getBaseClassOffsetInBits(
+               cast<CXXRecordDecl>(BaseRT->getDecl())));
       break;
     }
     }
index 7b5ed4ad16172120264b2fa2f1d31f07e3567753..c433ca488cffe14c53ea76ed88c874372e24e2e7 100644 (file)
@@ -98,7 +98,7 @@ class EmptySubobjectMap {
     assert(FieldOffset % CharWidth == 0 && 
            "Field offset not at char boundary!");
 
-    return CharUnits::fromQuantity(FieldOffset / CharWidth);
+    return toCharUnits(FieldOffset);
   }
 
   // FIXME: Remove this.
@@ -623,7 +623,7 @@ protected:
 
   // FIXME: Remove these.
   CharUnits toCharUnits(uint64_t Offset) const {
-    return CharUnits::fromQuantity(Offset / Context.getCharWidth());
+    return Context.toCharUnitsFromBits(Offset);
   }
   uint64_t toOffset(CharUnits Offset) const {
     return Offset.getQuantity() * Context.getCharWidth();
@@ -1806,8 +1806,7 @@ static void DumpCXXRecordLayout(llvm::raw_ostream &OS,
          E = RD->field_end(); I != E; ++I, ++FieldNo) {
     const FieldDecl *Field = *I;
     CharUnits FieldOffset = Offset + 
-      CharUnits::fromQuantity(Layout.getFieldOffset(FieldNo) / 
-                              C.getCharWidth());
+      C.toCharUnitsFromBits(Layout.getFieldOffset(FieldNo));
 
     if (const RecordType *RT = Field->getType()->getAs<RecordType>()) {
       if (const CXXRecordDecl *D = dyn_cast<CXXRecordDecl>(RT->getDecl())) {