================
@@ -435,142 +435,202 @@ struct DemanglingPartsTestCase {
 DemanglingPartsTestCase g_demangling_parts_test_cases[] = {
     // clang-format off
    { 
"_ZNVKO3BarIN2ns3QuxIiEEE1CIPFi3FooIS_IiES6_EEE6methodIS6_EENS5_IT_SC_E5InnerIiEESD_SD_",
-     { /*.BasenameRange=*/{92, 98}, /*.ScopeRange=*/{36, 92}, 
/*.ArgumentsRange=*/{ 108, 158 },
-       /*.QualifiersRange=*/{158, 176}, /*.PrefixRange=*/{0, 0}, 
/*.SuffixRange=*/{0, 0} },
+     {
+       /*.BasenameRange=*/{92, 98}, /*.TemplateRange=*/{0, 0}, 
/*.ScopeRange=*/{36, 92},
----------------
charles-zablit wrote:

> I'm concerned how setting the TemplateRange is done outside of the 
> TrackingOutputBuffer. Would it be difficult to track this inside the 
> demangler?

In Swift, this is done inside the demangler.

In C++, I tried, but was not able to figure out how to properly do it. I added 
calls to `updateTemplateArguments` around `N.TemplateArgs->print(*this);` in 
this function:

```cpp
void TrackingOutputBuffer::printLeftImpl(const NameWithTemplateArgs &N) {
  N.Name->print(*this);
  updateBasenameEnd();
  N.TemplateArgs->print(*this);
}
```

However, even with different guards to not overwrite the starting ranges, this 
did not work.

I ended up setting the `TemplateArgumentsRange` manually in the demangler.

> Also, shouldn't the CPlusPlusLanguage plugin be changed to now use the 
> TemplateArgumentsRange to handle the ${function.template-arguments} variable?

Yes, this is fixed now 👍 

https://github.com/llvm/llvm-project/pull/150999
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to