Change return type of getObjCEncodingTypeSize() to CharUnits as the units are in characters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93171 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/ASTContext.h b/include/clang/AST/ASTContext.h
index 3dcc55f..7dea6dc 100644
--- a/include/clang/AST/ASTContext.h
+++ b/include/clang/AST/ASTContext.h
@@ -699,8 +699,8 @@
                                       ObjCProtocolDecl *rProto);
 
   /// getObjCEncodingTypeSize returns size of type for objective-c encoding
-  /// purpose.
-  int getObjCEncodingTypeSize(QualType t);
+  /// purpose in characters.
+  CharUnits getObjCEncodingTypeSize(QualType t);
 
   /// This setter/getter represents the ObjC 'id' type. It is setup lazily, by
   /// Sema.  id is always a (typedef for a) pointer type, a pointer to a struct.
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index bd5ca93..e729b1b 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -3137,7 +3137,7 @@
 
 /// getObjCEncodingTypeSize returns size of type for objective-c encoding
 /// purpose.
-int ASTContext::getObjCEncodingTypeSize(QualType type) {
+CharUnits ASTContext::getObjCEncodingTypeSize(QualType type) {
   CharUnits sz = getTypeSizeInChars(type);
 
   // Make all integer and enum types at least as large as an int
@@ -3146,7 +3146,7 @@
   // Treat arrays as pointers, since that's how they're passed in.
   else if (type->isArrayType())
     sz = getTypeSizeInChars(VoidPtrTy);
-  return sz.getQuantity();
+  return sz;
 }
 
 static inline 
@@ -3172,7 +3172,7 @@
   for (ObjCMethodDecl::param_iterator PI = Decl->param_begin(),
        E = Decl->param_end(); PI != E; ++PI) {
     QualType PType = (*PI)->getType();
-    CharUnits sz = CharUnits::fromQuantity(getObjCEncodingTypeSize(PType));
+    CharUnits sz = getObjCEncodingTypeSize(PType);
     assert (sz.isPositive() && "BlockExpr - Incomplete param type");
     ParmOffset += sz;
   }
@@ -3198,7 +3198,7 @@
       PType = PVDecl->getType();
     getObjCEncodingForType(PType, S);
     S += charUnitsToString(ParmOffset);
-    ParmOffset += CharUnits::fromQuantity(getObjCEncodingTypeSize(PType));
+    ParmOffset += getObjCEncodingTypeSize(PType);
   }
 }
 
@@ -3222,7 +3222,7 @@
   for (ObjCMethodDecl::param_iterator PI = Decl->param_begin(),
        E = Decl->param_end(); PI != E; ++PI) {
     QualType PType = (*PI)->getType();
-    CharUnits sz = CharUnits::fromQuantity(getObjCEncodingTypeSize(PType));
+    CharUnits sz = getObjCEncodingTypeSize(PType);
     assert (sz.isPositive() && 
         "getObjCEncodingForMethodDecl - Incomplete param type");
     ParmOffset += sz;
@@ -3250,7 +3250,7 @@
     getObjCEncodingForTypeQualifier(PVDecl->getObjCDeclQualifier(), S);
     getObjCEncodingForType(PType, S);
     S += charUnitsToString(ParmOffset);
-    ParmOffset += CharUnits::fromQuantity(getObjCEncodingTypeSize(PType));
+    ParmOffset += getObjCEncodingTypeSize(PType);
   }
 }