Author: Aaron Ballman
Date: 2023-07-20T09:53:44-04:00
New Revision: 794928b022e9432b3dd16ada2e71579b6532f15f

URL: 
https://github.com/llvm/llvm-project/commit/794928b022e9432b3dd16ada2e71579b6532f15f
DIFF: 
https://github.com/llvm/llvm-project/commit/794928b022e9432b3dd16ada2e71579b6532f15f.diff

LOG: Update NATVIS visualizers for Clang

This fixes issues with TemplateTypeParmType and TemplateTypeParmDecl.

Added: 
    

Modified: 
    clang/utils/ClangVisualizers/clang.natvis

Removed: 
    


################################################################################
diff  --git a/clang/utils/ClangVisualizers/clang.natvis 
b/clang/utils/ClangVisualizers/clang.natvis
index bbdce26225083b..388f6fe444ef90 100644
--- a/clang/utils/ClangVisualizers/clang.natvis
+++ b/clang/utils/ClangVisualizers/clang.natvis
@@ -223,11 +223,11 @@ For later versions of Visual Studio, no setup is 
required-->
     <DisplayString IncludeView="TorC" 
Condition="Typename">typename</DisplayString>
     <DisplayString IncludeView="TorC" 
Condition="!Typename">class</DisplayString>
     <DisplayString IncludeView="MaybeEllipses" Condition="TypeForDecl == 
nullptr">(not yet known if parameter pack) </DisplayString>
-    <DisplayString IncludeView="MaybeEllipses" 
Condition="((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase 
*)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) &amp; ~(uintptr_t)((1 
&lt;&lt; 4) - 
1)))-&gt;BaseType))->CanTTPTInfo.ParameterPack">...</DisplayString>
-    <DisplayString IncludeView="MaybeEllipses" 
Condition="!((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase 
*)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) &amp; ~(uintptr_t)((1 
&lt;&lt; 4) - 1)))-&gt;BaseType))->CanTTPTInfo.ParameterPack"></DisplayString>
-    <DisplayString IncludeView="DefaultArg" 
Condition="(DefaultArgument.ValueOrInherited.Val.Value&amp;3LL) == 
0">{(TypeSourceInfo 
*)(DefaultArgument.ValueOrInherited.Val.Value&amp;~3LL),view(cpp)}</DisplayString>
+    <DisplayString IncludeView="MaybeEllipses" 
Condition="((clang::TemplateTypeParmType *)((clang::ExtQualsTypeCommonBase 
*)((*(uintptr_t *)TypeForDecl-&gt;CanonicalType.Value.Value.Data) &amp; 
~(uintptr_t)((1U &lt;&lt; clang::TypeAlignmentInBits) - 
1U)))-&gt;BaseType)->CanTTPTInfo.ParameterPack">...</DisplayString>
+    <DisplayString IncludeView="MaybeEllipses" 
Condition="!((clang::TemplateTypeParmType *)((clang::ExtQualsTypeCommonBase 
*)((*(uintptr_t *)TypeForDecl-&gt;CanonicalType.Value.Value.Data) &amp; 
~(uintptr_t)((1U &lt;&lt; clang::TypeAlignmentInBits) - 
1U)))-&gt;BaseType)->CanTTPTInfo.ParameterPack"></DisplayString>
+    <DisplayString IncludeView="DefaultArg" Condition="(*(uintptr_t 
*)DefaultArgument.ValueOrInherited.Val.Value.Data &amp; 3LL) == 
0">{(TypeSourceInfo *)(*(uintptr_t 
*)DefaultArgument.ValueOrInherited.Val.Value.Data&amp;~3LL),view(cpp)}</DisplayString>
     <DisplayString 
IncludeView="DefaultArg">{{InheritedInitializer}}</DisplayString>
-    <DisplayString IncludeView="Initializer" 
Condition="DefaultArgument.ValueOrInherited.Val.Value&amp;~3LL">= 
{this,view(DefaultArg)na}</DisplayString>
+    <DisplayString IncludeView="Initializer" Condition="*(uintptr_t 
*)DefaultArgument.ValueOrInherited.Val.Value.Data &amp; 3LL">= 
{this,view(DefaultArg)na}</DisplayString>
     <DisplayString IncludeView="Initializer"></DisplayString>
     <DisplayString>{*this,view(TorC)} 
{*this,view(MaybeEllipses)}{Name,view(cpp)} 
{this,view(Initializer)na}</DisplayString>
   </Type>
@@ -439,8 +439,8 @@ For later versions of Visual Studio, no setup is required-->
     </Expand>
   </Type>
   <Type Name="clang::TemplateTypeParmType">
-    <DisplayString IncludeView="cpp" Condition="CanonicalType.Value.Value != 
this">{TTPDecl->Name,view(cpp)}</DisplayString>
-    <DisplayString Condition="CanonicalType.Value.Value != 
this">Non-canonical: {*TTPDecl}</DisplayString>
+    <DisplayString IncludeView="cpp" Condition="((clang::TemplateTypeParmType 
*)((clang::ExtQualsTypeCommonBase *)((*(uintptr_t 
*)CanonicalType.Value.Value.Data) &amp; ~(uintptr_t)((1U &lt;&lt; 
clang::TypeAlignmentInBits) - 1U)))-&gt;BaseType) != 
this">{TTPDecl->Name,view(cpp)}</DisplayString>
+    <DisplayString Condition="((clang::TemplateTypeParmType 
*)((clang::ExtQualsTypeCommonBase *)((*(uintptr_t 
*)CanonicalType.Value.Value.Data) &amp; ~(uintptr_t)((1U &lt;&lt; 
clang::TypeAlignmentInBits) - 1U)))-&gt;BaseType) != this">Non-canonical: 
{*TTPDecl}</DisplayString>
     <DisplayString>Canonical: {CanTTPTInfo}</DisplayString>
     <Expand>
       <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to