OSDN Git Service

Fix the MSVC Visualizers for SmallVector classes.
authorZachary Turner <zturner@google.com>
Sat, 21 Jul 2018 15:38:47 +0000 (15:38 +0000)
committerZachary Turner <zturner@google.com>
Sat, 21 Jul 2018 15:38:47 +0000 (15:38 +0000)
Recent changes to the internal structure of SmallVector<> broke
all of the MSVC visualizers.  This fixes them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337644 91177308-0d34-0410-b5e6-96231b3b80d8

utils/LLVMVisualizers/llvm.natvis

index e0812a0..963c94f 100644 (file)
@@ -10,36 +10,36 @@ For later versions of Visual Studio, no setup is required.
 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">\r
   <!-- VS2013 -->\r
   <Type Name="llvm::SmallVectorImpl&lt;*&gt;" Priority="MediumLow">\r
-    <DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) == 0">empty</DisplayString>\r
-    <DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) != 0">{{ size={($T1*)EndX - ($T1*)BeginX} }}</DisplayString>\r
+    <DisplayString Condition="Size == 0">empty</DisplayString>\r
+    <DisplayString Condition="Size != 0">{{ size={Size} }}</DisplayString>\r
     <Expand>\r
-      <Item Name="[size]">($T1*)EndX - ($T1*)BeginX</Item>\r
-      <Item Name="[capacity]">($T1*)CapacityX - ($T1*)BeginX</Item>\r
+      <Item Name="[size]">Size</Item>\r
+      <Item Name="[capacity]">Capacity</Item>\r
       <ArrayItems>\r
-        <Size>($T1*)EndX - ($T1*)BeginX</Size>\r
+        <Size>Size</Size>\r
         <ValuePointer>($T1*)BeginX</ValuePointer>\r
       </ArrayItems>\r
     </Expand>\r
   </Type>\r
   <!-- VS2015 and up -->\r
   <Type Name="llvm::SmallVectorImpl&lt;*&gt;">\r
-    <DisplayString IncludeView ="elt0" Condition="(($T1*)EndX - ($T1*)BeginX) == 0"></DisplayString>\r
+    <DisplayString IncludeView ="elt0" Condition="Size == 0"></DisplayString>\r
     <DisplayString IncludeView ="elt0">{(($T1*)BeginX)[0]}{*this,view(elt1)}</DisplayString>\r
-    <DisplayString IncludeView ="elt1" Condition="(($T1*)EndX - ($T1*)BeginX) == 1"></DisplayString>\r
+    <DisplayString IncludeView ="elt1" Condition="Size == 1"></DisplayString>\r
     <DisplayString IncludeView ="elt1">, {(($T1*)BeginX)[1]}{*this,view(elt2)}</DisplayString>\r
-    <DisplayString IncludeView ="elt2" Condition="(($T1*)EndX - ($T1*)BeginX) == 2"></DisplayString>\r
+    <DisplayString IncludeView ="elt2" Condition="Size == 2"></DisplayString>\r
     <DisplayString IncludeView ="elt2">, {(($T1*)BeginX)[2]}{*this,view(elt3)}</DisplayString>\r
-    <DisplayString IncludeView ="elt3" Condition="(($T1*)EndX - ($T1*)BeginX) == 3"></DisplayString>\r
+    <DisplayString IncludeView ="elt3" Condition="Size == 3"></DisplayString>\r
     <DisplayString IncludeView ="elt3">, {(($T1*)BeginX)[2]}{*this,view(elt4)}</DisplayString>\r
-    <DisplayString IncludeView ="elt4" Condition="(($T1*)EndX - ($T1*)BeginX) == 4"></DisplayString>\r
-    <DisplayString IncludeView ="elt4">, /* {(($T1*)EndX - ($T1*)BeginX) - 4} more*/ </DisplayString>\r
-    <DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) == 0">empty</DisplayString>\r
-    <DisplayString Condition="(($T1*)EndX - ($T1*)BeginX) != 0">{{{*this,view(elt0)}}}</DisplayString>\r
+    <DisplayString IncludeView ="elt4" Condition="Size == 4"></DisplayString>\r
+    <DisplayString IncludeView ="elt4">, /* {Size - 4} more*/ </DisplayString>\r
+    <DisplayString Condition="Size == 0">empty</DisplayString>\r
+    <DisplayString Condition="Size != 0">{{{*this,view(elt0)}}}</DisplayString>\r
     <Expand>\r
-      <Item Name="[size]">($T1*)EndX - ($T1*)BeginX</Item>\r
-      <Item Name="[capacity]">($T1*)CapacityX - ($T1*)BeginX</Item>\r
+      <Item Name="[size]">Size</Item>\r
+      <Item Name="[capacity]">Capacity</Item>\r
       <ArrayItems>\r
-        <Size>($T1*)EndX - ($T1*)BeginX</Size>\r
+        <Size>Size</Size>\r
         <ValuePointer>($T1*)BeginX</ValuePointer>\r
       </ArrayItems>\r
     </Expand>\r
@@ -56,13 +56,13 @@ For later versions of Visual Studio, no setup is required.
     </Expand>\r
   </Type>\r
   <Type Name="llvm::SmallString&lt;*&gt;">\r
-    <DisplayString>{(const char*)BeginX,[(char*)EndX - (char*)BeginX] na}</DisplayString>\r
-    <StringView>(const char*)BeginX,[(char*)EndX - (char*)BeginX]</StringView>\r
+    <DisplayString>{(const char*)BeginX,[Size] na}</DisplayString>\r
+    <StringView>(const char*)BeginX,[Size]</StringView>\r
     <Expand>\r
-      <Item Name="[size]">(char*)EndX - (char*)BeginX</Item>\r
-      <Item Name="[capacity]">(char*)CapacityX - (char*)BeginX</Item>\r
+      <Item Name="[size]">Size</Item>\r
+      <Item Name="[capacity]">Capacity</Item>\r
       <ArrayItems>\r
-        <Size>(char*)EndX - (char*)BeginX</Size>\r
+        <Size>Size</Size>\r
         <ValuePointer>(char*)BeginX</ValuePointer>\r
       </ArrayItems>\r
     </Expand>\r