Index: clang/lib/CodeGen/CGDebugInfo.cpp
===================================================================
--- clang/lib/CodeGen/CGDebugInfo.cpp
+++ clang/lib/CodeGen/CGDebugInfo.cpp
@@ -2363,13 +2363,10 @@
       // We don't know the runtime offset of an ivar if we're using the
       // non-fragile ABI.  For bitfields, use the bit offset into the first
       // byte of storage of the bitfield.  For other fields, use zero.
-      if (Field->isBitField()) {
-        FieldOffset =
-            CGM.getObjCRuntime().ComputeBitfieldBitOffset(CGM, ID, Field);
-        FieldOffset %= CGM.getContext().getCharWidth();
-      } else {
-        FieldOffset = 0;
-      }
+      FieldOffset =
+          Field->isBitField()
+              ? CGM.getObjCRuntime().ComputeBitfieldBitOffset(CGM, ID, Field)
+              : 0;
     } else {
       FieldOffset = RL.getFieldOffset(FieldNo);
     }
Index: clang/test/CodeGenObjC/debug-info-ivars.m
===================================================================
--- clang/test/CodeGenObjC/debug-info-ivars.m
+++ clang/test/CodeGenObjC/debug-info-ivars.m
@@ -15,30 +15,29 @@
 }
 @end
 
-@implementation BaseClass
-@end
+    @implementation BaseClass
+    @end
 
-// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "i"
-// CHECK-SAME:           line: 10
-// CHECK-SAME:           baseType: ![[INT:[0-9]+]]
-// CHECK-SAME:           size: 32,
-// CHECK-NOT:            offset:
-// CHECK-SAME:           flags: DIFlagProtected
-// CHECK: ![[INT]] = !DIBasicType(name: "int"
-// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "flag_1"
-// CHECK-SAME:           line: 11
-// CHECK-SAME:           baseType: ![[UNSIGNED:[0-9]+]]
-// CHECK-SAME:           size: 9,
-// CHECK-NOT:            offset:
-// CHECK-SAME:           flags: DIFlagProtected
-// CHECK: ![[UNSIGNED]] = !DIBasicType(name: "unsigned int"
-// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "flag_2"
-// CHECK-SAME:           line: 12
-// CHECK-SAME:           baseType: ![[UNSIGNED]]
-// CHECK-SAME:           size: 9, offset: 1,
-// CHECK-SAME:           flags: DIFlagProtected
-// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "flag_3"
-// CHECK-SAME:           line: 14
-// CHECK-SAME:           baseType: ![[UNSIGNED]]
-// CHECK-SAME:           size: 9, offset: 3,
-// CHECK-SAME:           flags: DIFlagProtected
+    // CHECK: !DIDerivedType(tag: DW_TAG_member, name: "i"
+    // CHECK-SAME:           line: 10
+    // CHECK-SAME:           baseType: ![[INT:[0-9]+]]
+    // CHECK-SAME:           size: 32,
+    // CHECK-NOT:            offset:
+    // CHECK-SAME:           flags: DIFlagProtected
+    // CHECK: ![[INT]] = !DIBasicType(name: "int"
+    // CHECK: !DIDerivedType(tag: DW_TAG_member, name: "flag_1"
+    // CHECK-SAME:           line: 11
+    // CHECK-SAME:           baseType: ![[UNSIGNED:[0-9]+]]
+    // CHECK-SAME:           size: 9, offset: 96
+    // CHECK-SAME:           flags: DIFlagProtected
+    // CHECK: ![[UNSIGNED]] = !DIBasicType(name: "unsigned int"
+    // CHECK: !DIDerivedType(tag: DW_TAG_member, name: "flag_2"
+    // CHECK-SAME:           line: 12
+    // CHECK-SAME:           baseType: ![[UNSIGNED]]
+    // CHECK-SAME:           size: 9, offset: 105
+    // CHECK-SAME:           flags: DIFlagProtected
+    // CHECK: !DIDerivedType(tag: DW_TAG_member, name: "flag_3"
+    // CHECK-SAME:           line: 14
+    // CHECK-SAME:           baseType: ![[UNSIGNED]]
+    // CHECK-SAME:           size: 9, offset: 115
+    // CHECK-SAME:           flags: DIFlagProtected