r350371 - Fix MSVC visualizations for ActionResult and OpaquePtr

Mike Spertus via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 3 15:24:40 PST 2019


Author: mps
Date: Thu Jan  3 15:24:39 2019
New Revision: 350371

URL: http://llvm.org/viewvc/llvm-project?rev=350371&view=rev
Log:
Fix MSVC visualizations for ActionResult and OpaquePtr

Mainly just fixing buggy code. Also removed unnecessary visualizers
for specializations of OpaquePtr


Modified:
    cfe/trunk/utils/ClangVisualizers/clang.natvis

Modified: cfe/trunk/utils/ClangVisualizers/clang.natvis
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/ClangVisualizers/clang.natvis?rev=350371&r1=350370&r2=350371&view=diff
==============================================================================
--- cfe/trunk/utils/ClangVisualizers/clang.natvis (original)
+++ cfe/trunk/utils/ClangVisualizers/clang.natvis Thu Jan  3 15:24:39 2019
@@ -492,18 +492,6 @@ For later versions of Visual Studio, no
       <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
     </Expand>
   </Type>
-  <Type Name="clang::OpaquePtr<clang::QualType>">
-    <DisplayString>{*(clang::QualType *)this}</DisplayString>
-    <Expand>
-      <Item Name="Ptr">*(clang::QualType *)this</Item>
-    </Expand>
-  </Type>
-  <Type Name="clang::UnionOpaquePtr<clang::QualType>">
-    <DisplayString>{*(clang::QualType *)this}</DisplayString>
-    <Expand>
-      <Item Name="Ptr">*(clang::QualType *)this</Item>
-    </Expand>
-  </Type>
   <Type Name="clang::OpaquePtr<*>">
     <DisplayString>{($T1 *)Ptr}</DisplayString>
     <Expand>
@@ -568,30 +556,18 @@ For later versions of Visual Studio, no
     <DisplayString Condition="ResultKind == clang::LookupResult::Ambiguous">{Ambiguity,en}: {Decls}</DisplayString>
     <DisplayString>{ResultKind,en}: {Decls}</DisplayString>
   </Type>
-  <Type Name="clang::ActionResult<*>" IncludeView="packedValidity">
-    <DisplayString Condition="PtrWithInvalid&1">Invalid</DisplayString>
-    <DisplayString Condition="!(PtrWithInvalid&1)">Valid</DisplayString>
-   </Type>
-  <Type Name="clang::ActionResult<*>" IncludeView="unpackedValidity">
+  <Type Name="clang::ActionResult<*, 0>">
     <DisplayString Condition="Invalid">Invalid</DisplayString>
-    <DisplayString Condition="!Invalid">Valid</DisplayString>
+    <DisplayString Condition="!*(void **)&Val">Unset</DisplayString>
+    <DisplayString>{Val}</DisplayString>
   </Type>
-  <Type Name="clang::ActionResult<*>" IncludeView="packed">
-    <DisplayString>{*this,view(packedValidity)}: {($T1 *)(PtrWithInvalid&~1)}</DisplayString>
+  <Type Name="clang::ActionResult<*, 1>">
+    <DisplayString Condition="PtrWithInvalid&1">Invalid</DisplayString>
+    <DisplayString Condition="!PtrWithInvalid">Unset</DisplayString>
+    <DisplayString>{($T1)(PtrWithInvalid&~1)}</DisplayString>
     <Expand>
       <Item Name="Invalid">(bool)(PtrWithInvalid&1)</Item>
-      <Item Name="Val">($T1 *)(PtrWithInvalid&~1)</Item>
-    </Expand>
-  </Type>
-  <Type Name="clang::ActionResult<*>" IncludeView="unpacked">
-    <DisplayString>{*this,view(unpackedValidity)}: {Val}</DisplayString>
-  </Type>
-  <Type Name="clang::ActionResult<*>">
-    <DisplayString Condition="$T2">{*this,view(packed)}</DisplayString>
-    <DisplayString Condition="!$T2">{*this,view(unpacked)}</DisplayString>
-    <Expand>
-      <ExpandedItem Condition="$T2">*this,view(packed)</ExpandedItem>
-      <ExpandedItem Condition="!$T2">*this,view(unpacked)</ExpandedItem>
+      <Item Name="Val">($T1)(PtrWithInvalid&~1)</Item>
     </Expand>
   </Type>
 </AutoVisualizer>




More information about the cfe-commits mailing list