Background:
The number of trailing CXXBaseSpecifiers in CastExpr was moved from
CastExprBitfields to a trailing object in r338489 (D50050). At this time these bit-fields
classes were only 32 bits wide. However later r345459 widened these bit-field classes to 64 bits.
The reason for this change was that on 64 bit archs alignment requirements caused 4 bytes of
padding after the Stmt sub-object in nearly all expression classes. Reusing this padding yielded
an >10% reduction in the size used by all statement/expressions when parsing all of Boost (on a
64 bit arch). This increased the size of statement/expressions for 32 bits archs, but this can be
mitigated by moving more data to the bit-fields of Stmt (and moreover most people now care
about 64 bits archs as a host).
Therefore move back the number of CXXBaseSpecifiers in CastExpr to the bit-fields of Stmt.
This in effect mostly revert r338489 while keeping the added test.
It cannot overflow now, but someone in the future is going
to shrink CastExprBitfields::BasePathSize.