Index: lib/AST/RecordLayoutBuilder.cpp
===================================================================
--- lib/AST/RecordLayoutBuilder.cpp	(revision 150679)
+++ lib/AST/RecordLayoutBuilder.cpp	(working copy)
@@ -1461,17 +1461,18 @@
                                  Context.getTargetInfo().getCharAlign()));
   NonVirtualAlignment = Alignment;
 
-  if (isMicrosoftCXXABI() &&
-      NonVirtualSize != NonVirtualSize.RoundUpToAlignment(Alignment)) {
-    CharUnits AlignMember = 
-      NonVirtualSize.RoundUpToAlignment(Alignment) - NonVirtualSize;
+  if (isMicrosoftCXXABI()) {
+    if (NonVirtualSize != NonVirtualSize.RoundUpToAlignment(Alignment)) {
+      CharUnits AlignMember = 
+        NonVirtualSize.RoundUpToAlignment(Alignment) - NonVirtualSize;
 
-    setSize(getSize() + AlignMember);
-    setDataSize(getSize());
+      setSize(getSize() + AlignMember);
+      setDataSize(getSize());
 
-    NonVirtualSize = Context.toCharUnitsFromBits(
-                             llvm::RoundUpToAlignment(getSizeInBits(),
-                             Context.getTargetInfo().getCharAlign()));
+      NonVirtualSize = Context.toCharUnitsFromBits(
+                               llvm::RoundUpToAlignment(getSizeInBits(),
+                               Context.getTargetInfo().getCharAlign()));
+    }
 
     MSLayoutVirtualBases(RD);
 
