Currently in Sema::ActOnEnumBody(...) when calculating NumPositiveBits we miss the case where there is only a single enumerator with value zero and the case of an empty enum. In both cases we end up with zero positive bits when in fact we need one bit to store the value zero.
This PR updates the calculation to account for these cases.
Relevant C++ standard quotes are [dcl.enum]p7:
.., If the enumerator-list is empty, the underlying type is as if the enumeration had a single enumerator with value 0.
and [dcl.enum]p8:
... Otherwise, the values of the enumeration are the values representable by a hypothetical
integer type with minimal width M such that all enumerators can be represented. The width of the smallest
bit-field large enough to hold all the values of the enumeration type is M. ...
Add trailing punctuation, removes top-level const.