Http://clang.llvm.org/docs/InternalsManual.html#the-qualtype-class
The qualtype class is designed to be an efficient value class which contains a pointer to the unqualified type together with the qualifiers (const, volatile etc .). the class is implemented as a llvm: pointerintpair
/// PointerIntPair - This class implements a pair of a pointer and small/// integer. It is designed to represent this in the space required by one/// pointer by bitmangling the integer into the low part of the pointer. This/// can only be done for small integers: typically up to 3 bits, but it depends/// on the number of bits available according to PointerLikeTypeTraits for the/// type.////// Note that PointerIntPair always puts the IntVal part in the highest bits/// possible. For example, PointerIntPair<void*, 1, bool> will put the bit for/// the bool into bit #2, not bit #0, which allows the low two bits to be used/// for something else. For example, this allows:/// PointerIntPair<PointerIntPair<void*, 1, bool>, 1, bool>/// ... and the two bools will land in different bits.
Qualtype in clang