diff options
author | Mike Spertus <mike@spertus.com> | 2016-03-29 09:24:45 +0000 |
---|---|---|
committer | Mike Spertus <mike@spertus.com> | 2016-03-29 09:24:45 +0000 |
commit | a9ab71c65a5f4021d86a9870d931ce43cebabe7e (patch) | |
tree | eeeb758d163590bb7cd9082a9b2ca0116f5ec5a5 | |
parent | 5a3af13d93fb62a675b4cee74322244f2f6c6023 (diff) | |
download | bcm5719-llvm-a9ab71c65a5f4021d86a9870d931ce43cebabe7e.tar.gz bcm5719-llvm-a9ab71c65a5f4021d86a9870d931ce43cebabe7e.zip |
Visual Studio native visualizer for InjectedClassNameType
Also fixes some omissions for TemplateSpecializationType
llvm-svn: 264710
-rw-r--r-- | clang/utils/ClangVisualizers/clang.natvis | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/clang/utils/ClangVisualizers/clang.natvis b/clang/utils/ClangVisualizers/clang.natvis index 3ce3d67b804..ab99328a16a 100644 --- a/clang/utils/ClangVisualizers/clang.natvis +++ b/clang/utils/ClangVisualizers/clang.natvis @@ -32,8 +32,10 @@ For later versions of Visual Studio, no setup is required--> <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="poly">{*(clang::RecordType *)this}</DisplayString>
<DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="cpp">{*(clang::RecordType *)this,view(cpp)}</DisplayString>
<DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto" IncludeView="poly">{*(clang::FunctionProtoType *)this}</DisplayString>
+ <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization" IncludeView="poly">{*(clang::TemplateSpecializationType *)this}</DisplayString>
+ <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName" IncludeView="poly">{*(clang::InjectedClassNameType *)this}</DisplayString>
<DisplayString IncludeView="cpp">{*this,view(poly)}</DisplayString>
- <DisplayString IncludeView="poly">{*this,view(cmn)}"</DisplayString> <!-- Not yet implemented Type subclass -->
+ <DisplayString IncludeView="poly">{*this,view(cmn)}</DisplayString> <!-- Not yet implemented Type subclass -->
<DisplayString>{*this,view(cmn)} {{{*this,view(poly)}}}</DisplayString>
<Expand>
<Item Name="TypeClass" IncludeView="cmn">(clang::Type::TypeClass)TypeBits.TC</Item>
@@ -48,6 +50,8 @@ For later versions of Visual Studio, no setup is required--> <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm">(clang::SubstTemplateTypeParmType *)this</ExpandedItem>
<ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Record">(clang::RecordType *)this</ExpandedItem>
<ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto">(clang::FunctionProtoType *)this</ExpandedItem>
+ <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization">(clang::TemplateSpecializationType *)this</ExpandedItem>
+ <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName">(clang::InjectedClassNameType *)this</ExpandedItem>
</Expand>
</Type>
<Type Name="clang::PointerType">
@@ -182,6 +186,14 @@ For later versions of Visual Studio, no setup is required--> <Type Name="clang::TemplateTypeParmType">
<DisplayString>typename {*TTPDecl,view(cpp)}</DisplayString>
</Type>
+ <Type Name="clang::InjectedClassNameType">
+ <DisplayString>{*Decl,view(cpp)}</DisplayString>
+ <Expand>
+ <Item Name="Decl">Decl</Item>
+ <Item Name="InjectedType">InjectedType</Item>
+ <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
+ </Expand>
+ </Type>
<Type Name="clang::QualType">
<!-- When VS2013 support is deprecated, change 4 to clang::TypeAlignmentInBits (not properly recognized by VS2013) -->
<DisplayString IncludeView="poly">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(poly)}{*this,view(fastQuals)}</DisplayString>
|