mspertus created this revision.
mspertus added reviewers: aaron.ballman, zturner.
mspertus added a subscriber: cfe-commits.

The Visual Studio native visualizer in llvm.natvis displays the actual pointer 
in a PointerUnion as a void *. E.g.

    clang::Type const *: 0x02c4a880

Which doesn't make clear what the type looks like. With this change, we will 
display an actual Type *, resulting in a much better visualization that makes 
it clear that the clang::Type is a PointerType representing "Int *"

    clang::Type const *: 0x02c4a880 PointerType: BuiltinType: Int *

(Note, the above uses an upcoming visualizer for clang::PointerType because 
that is my test case, but that is orthogonal to this change).

http://reviews.llvm.org/D18076

Files:
  llvm.natvis

Index: llvm.natvis
===================================================================
--- llvm.natvis
+++ llvm.natvis
@@ -54,8 +54,8 @@
   </Type>
 
   <Type Name="llvm::PointerUnion&lt;*,*&gt;">
-    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; 
Val.IntMask) == 0">{"$T1", s8b} {(void*)(Val.Value &amp; 
Val.PointerBitMask)}</DisplayString>
-    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; 
Val.IntMask) != 0">{"$T2", s8b} {(void*)(Val.Value &amp; 
Val.PointerBitMask)}</DisplayString>
+    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; 
Val.IntMask) == 0">{"$T1", s8b}: {($T1)(Val.Value &amp; 
Val.PointerBitMask)}</DisplayString>
+    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; 
Val.IntMask) != 0">{"$T2", s8b}: {($T2)(Val.Value &amp; 
Val.PointerBitMask)}</DisplayString>
     <Expand>
       <ExpandedItem Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; 
Val.IntMask) == 0">($T1)(Val.Value &amp; Val.PointerBitMask)</ExpandedItem>
       <ExpandedItem Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; 
Val.IntMask) != 0">($T2)(Val.Value &amp; Val.PointerBitMask)</ExpandedItem>


Index: llvm.natvis
===================================================================
--- llvm.natvis
+++ llvm.natvis
@@ -54,8 +54,8 @@
   </Type>
 
   <Type Name="llvm::PointerUnion&lt;*,*&gt;">
-    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; Val.IntMask) == 0">{"$T1", s8b} {(void*)(Val.Value &amp; Val.PointerBitMask)}</DisplayString>
-    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; Val.IntMask) != 0">{"$T2", s8b} {(void*)(Val.Value &amp; Val.PointerBitMask)}</DisplayString>
+    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; Val.IntMask) == 0">{"$T1", s8b}: {($T1)(Val.Value &amp; Val.PointerBitMask)}</DisplayString>
+    <DisplayString Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; Val.IntMask) != 0">{"$T2", s8b}: {($T2)(Val.Value &amp; Val.PointerBitMask)}</DisplayString>
     <Expand>
       <ExpandedItem Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; Val.IntMask) == 0">($T1)(Val.Value &amp; Val.PointerBitMask)</ExpandedItem>
       <ExpandedItem Condition="((Val.Value &gt;&gt; Val.IntShift) &amp; Val.IntMask) != 0">($T2)(Val.Value &amp; Val.PointerBitMask)</ExpandedItem>
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to