From: Mike Spertus Date: Thu, 3 Jan 2019 00:52:54 +0000 (+0000) Subject: Fix MSVC visualizer for PointerUnion4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a13966ffb0fc5f6efd60d0512045fc4cd4a25c6;p=llvm Fix MSVC visualizer for PointerUnion4 Calculate which item is being held and then display it with the appropriate type. We also optimize the display of PointerUnion3 to take advantage of our knowing that the IntMask is always 1 in PointerUnion types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350280 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/LLVMVisualizers/llvm.natvis b/utils/LLVMVisualizers/llvm.natvis index 462c097c12e..410ac37147c 100644 --- a/utils/LLVMVisualizers/llvm.natvis +++ b/utils/LLVMVisualizers/llvm.natvis @@ -105,25 +105,53 @@ For later versions of Visual Studio, no setup is required. - {"$T3", s8b}: {($T3)(Val.Val.Value & ValTy::ValTy::InfoTy::PointerBitMask)} + {"$T3", s8b}: {($T3)(Val.Val.Value & ValTy::ValTy::InfoTy::PointerBitMask)} {*(InnerUnion*)&Val.Val.Value} - "$T3", s8b - ($T3)(Val.Val.Value & ValTy::ValTy::InfoTy::PointerBitMask) - *(InnerUnion*)&Val.Val.Value + "$T3", s8b + ($T3)(Val.Val.Value & ValTy::ValTy::InfoTy::PointerBitMask) + *(InnerUnion*)&Val.Val.Value - {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)} - {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)} - {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)} - {"$T4", s8b}: {($T4)((Val.Val.Value >> 2) << 2)} + + {"$T1", s8b}: {($T1)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask)} + + + {"$T2", s8b}: {($T2)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask)} + + + {"$T3", s8b}: {($T3)(Val.Val.Value & InnerUnion2::ValTy::InfoTy::PointerBitMask)} + + + {"$T4", s8b}: {($T4)(Val.Val.Value & InnerUnion2::ValTy::InfoTy::PointerBitMask)} + - ($T1)((Val.Val.Value >> 2) << 2) - ($T2)((Val.Val.Value >> 2) << 2) - ($T3)((Val.Val.Value >> 2) << 2) - ($T4)((Val.Val.Value >> 2) << 2) + + "$T1", s8b + + + ($T1)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask) + + + "$T2", s8b + + + ($T2)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask) + + + "$T3", s8b + + + ($T3)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask) + + + "$T4", s8b + + + ($T4)(Val.Val.Value & InnerUnion1::ValTy::InfoTy::PointerBitMask) +