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), ~~~^~~~~~~~~~~~~~