Index: llvm/trunk/include/llvm/ADT/PointerIntPair.h =================================================================== --- llvm/trunk/include/llvm/ADT/PointerIntPair.h +++ llvm/trunk/include/llvm/ADT/PointerIntPair.h @@ -42,6 +42,8 @@ typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo> class PointerIntPair { + // Used by MSVC visualizer and generally helpful for debugging/visualizing. + using InfoTy = Info; intptr_t Value = 0; public: Index: llvm/trunk/utils/LLVMVisualizers/llvm.natvis =================================================================== --- llvm/trunk/utils/LLVMVisualizers/llvm.natvis +++ llvm/trunk/utils/LLVMVisualizers/llvm.natvis @@ -35,6 +35,7 @@ , /* {Size - 4} more*/ empty {{{*this,view(elt0)}}} + Uninitialized Size Capacity @@ -93,11 +94,13 @@ - {"$T1", s8b}: {($T1)(Val.Value & Val.PointerBitMask)} - {"$T2", s8b}: {($T2)(Val.Value & Val.PointerBitMask)} + {"$T1", s8b}: {($T1)(Val.Value & ValTy::InfoTy::PointerBitMask)} + {"$T2", s8b}: {($T2)(Val.Value & ValTy::InfoTy::PointerBitMask)} - ($T1)(Val.Value & Val.PointerBitMask) - ($T2)(Val.Value & Val.PointerBitMask) + "$T1", s8b + ($T1)(Val.Value & ValTy::InfoTy::PointerBitMask) + "$T2", s8b + ($T2)(Val.Value & ValTy::InfoTy::PointerBitMask)