Oh wow. That's ... weird. Patch LGTM.
================
Comment at: test/Layout/ms-x86-bitfields-vbases.cpp:61
@@ +60,3 @@
+
+struct D : virtual B0 { char a : 1; char b; };
+
----------------
What happens for:
struct E : virtual B0 { char a, b, c, d : 4, e : 4, : 0; };
? Do we get extra padding?
http://llvm-reviews.chandlerc.com/D2103