Replace calls to CharUnits::fromQuantity() with ones
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
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index cb73810..f262a4a 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -404,8 +404,7 @@
       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 @@
 
     Result.Base = BaseLV.getLValueBase();
     Result.Offset = BaseLV.getLValueOffset() + 
-      CharUnits::fromQuantity(Offset / Info.Ctx.getCharWidth());
+      Info.Ctx.toCharUnitsFromBits(Offset);
     return true;
   }
 
@@ -1481,12 +1480,9 @@
   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 @@
           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 @@
         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;
     }
     }