This fixes compilation error when the tag of PointerSumType is wider than an
int, which is the case when the payload has too many low bits available.
E.g. on x86-64 when the payload is 8 bit wide and the tag is 56 bit wide, GCC
reports the following error message:
include/llvm/ADT/PointerSumType.h:252:37: error: right operand of shift expression ‘(1 << 56)’ is >= than the precision of the left operand [-fpermissive] static_assert(MemberT::Tag < (1 << NumTagBits), ~~~^~~~~~~~~~~~~~
This is formatted by clang-format and the indentation is a bit weird. A using declaration would be indented more nicely, but I sticked to typedef for consistency.