diff options
| author | Mike Spertus <mike@spertus.com> | 2016-03-24 00:38:54 +0000 |
|---|---|---|
| committer | Mike Spertus <mike@spertus.com> | 2016-03-24 00:38:54 +0000 |
| commit | 8758c9ddadd3e78c07696033b5b7cb6b7417d144 (patch) | |
| tree | f2591c86be61ef055603f06e0c891aec094b4625 /clang/utils | |
| parent | 3f564a52d074adc5b94c08968c59f70ea8d4fb70 (diff) | |
| download | bcm5719-llvm-8758c9ddadd3e78c07696033b5b7cb6b7417d144.tar.gz bcm5719-llvm-8758c9ddadd3e78c07696033b5b7cb6b7417d144.zip | |
Display const/volatile/restrict qualifiers in Visual Studio visualizations
llvm-svn: 264229
Diffstat (limited to 'clang/utils')
| -rw-r--r-- | clang/utils/clang.natvis | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/clang/utils/clang.natvis b/clang/utils/clang.natvis index 6d9949ddc0b..936fed4258f 100644 --- a/clang/utils/clang.natvis +++ b/clang/utils/clang.natvis @@ -182,11 +182,23 @@ or create a symbolic link so it updates automatically. <DisplayString>typename {*TTPDecl,view(cpp)}</DisplayString>
</Type>
<Type Name="clang::QualType">
- <!-- TODO: Qualifiers. Also, 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)}</DisplayString>
- <DisplayString IncludeView="cpp">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(cpp)}</DisplayString>
- <DisplayString>{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType}</DisplayString>
+ <!-- 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>
+ <DisplayString IncludeView="cpp">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType,view(cpp)}{*this,view(fastQuals)}</DisplayString>
+ <!-- For the Fast Qualifiers, it is simpler (and probably more efficient) just to list all 8 cases than create
+ views for each qualifier. TODO: Non-fast qualifiers -->
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==0"></DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==1">{" ",sb}const</DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==2">{" ",sb}restrict</DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==3">{" ",sb}const restrict</DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==4">{" ",sb}volatile</DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==5">{" ",sb}const volatile</DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==6">{" ",sb}volatile restrict</DisplayString>
+ <DisplayString IncludeView="fastQuals" Condition="(Value.Value & 15)==7">{" ",sb}const volatile restrict</DisplayString>
+ <DisplayString IncludeView="fastQuals">Cannot visualize non-fast qualifiers</DisplayString>
+ <DisplayString>{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType}{*this,view(fastQuals)}</DisplayString>
<Expand>
+ <Item Name="Fast Quals">*this,view(fastQuals)</Item>
<Item Name="BaseType">*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType</Item>
</Expand>
</Type>
|

