Add CharUnits::RoundUpToAlignment() to simplify rounding in character units.

llvm-svn: 123868
diff --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp
index 3cf128b..a594a0b 100644
--- a/clang/lib/CodeGen/CGBlocks.cpp
+++ b/clang/lib/CodeGen/CGBlocks.cpp
@@ -900,9 +900,7 @@
 
   // The runtime needs a minimum alignment of a void *.
   CharUnits MinAlign = getContext().getTypeAlignInChars(getContext().VoidPtrTy);
-  BlockOffset = CharUnits::fromQuantity(
-      llvm::RoundUpToAlignment(BlockOffset.getQuantity(), 
-                               MinAlign.getQuantity()));
+  BlockOffset = BlockOffset.RoundUpToAlignment(MinAlign);
 
   Info.BlockSize = BlockOffset;
   Info.BlockAlign = BlockAlign;
@@ -917,8 +915,7 @@
   CharUnits OldOffset = BlockOffset;
 
   // Ensure proper alignment, even if it means we have to have a gap
-  BlockOffset = CharUnits::fromQuantity(
-      llvm::RoundUpToAlignment(BlockOffset.getQuantity(), Align.getQuantity()));
+  BlockOffset = BlockOffset.RoundUpToAlignment(Align);
   BlockAlign = std::max(Align, BlockAlign);
 
   CharUnits Pad = BlockOffset - OldOffset;