Replace getTypeWidth() with ASTContext::getTypeSize().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71205 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp
index 74e2069..ea42c46 100644
--- a/lib/Analysis/RegionStore.cpp
+++ b/lib/Analysis/RegionStore.cpp
@@ -312,45 +312,6 @@
   return new RegionStoreManager(StMgr);
 }
 
-// getTypeWidth - compute the width of the type. Should pass in
-// canonical type.
-static unsigned getTypeWidth(ASTContext& Ctx, QualType T) {
-  TargetInfo& Target = Ctx.Target;
-  QualType CanT = Ctx.getCanonicalType(T);
-
-  if (CanT->isPointerType())
-    return Target.getPointerWidth(0);
-
-  if (CanT->isCharType())
-    return Target.getCharWidth();
-
-  if (const BuiltinType *BT = dyn_cast<BuiltinType>(CanT)) {
-    switch (BT->getKind()) {
-    case BuiltinType::Char_U:
-    case BuiltinType::UChar:
-    case BuiltinType::Char_S:
-    case BuiltinType::SChar:
-      return Target.getCharWidth();
-
-    case BuiltinType::UShort:
-    case BuiltinType::Short:
-      return Target.getShortWidth();
-
-    case BuiltinType::UInt:
-    case BuiltinType::Int:
-      return Target.getIntWidth();
-
-    case BuiltinType::ULong:
-    case BuiltinType::Long:
-      return Target.getLongWidth();
-    default:
-      assert(0 && "Unprocessed builtin type.");
-    }
-  }
-
-  assert(0 && "Unprocessed type.");
-}
-
 SubRegionMap* RegionStoreManager::getSubRegionMap(const GRState *state) {
   RegionBindingsTy B = GetRegionBindings(state->getStore());
   RegionStoreSubRegionMap *M = new RegionStoreSubRegionMap();
@@ -542,17 +503,17 @@
       return NonLoc::MakeVal(getBasicVals(), CAT->getSize(), false);
     }
 
-    // If the VarRegion is cast to other type, compute the size with respect to
-    // that type.
     GRStateRef state(St, StateMgr);
     const QualType* CastTy = state.get<RegionCasts>(VR);
 
+    // If the VarRegion is cast to other type, compute the size with respect to
+    // that type.
     if (CastTy) {
       QualType EleTy =cast<PointerType>(CastTy->getTypePtr())->getPointeeType();
       QualType VarTy = VR->getRValueType(getContext());
-      unsigned EleWidth = getTypeWidth(getContext(), EleTy);
-      unsigned VarWidth = getTypeWidth(getContext(), VarTy);
-      return NonLoc::MakeIntVal(getBasicVals(), VarWidth / EleWidth, false);
+      uint64_t EleSize = getContext().getTypeSize(EleTy);
+      uint64_t VarSize = getContext().getTypeSize(VarTy);
+      return NonLoc::MakeIntVal(getBasicVals(), VarSize / EleSize, false);
     }
 
     // Clients can use ordinary variables as if they were arrays.  These