================
@@ -92,6 +92,10 @@ void TrackingOutputBuffer::finalizeStart() {
   if (NameInfo.BasenameRange.second == 0)
     NameInfo.BasenameRange.second = getCurrentPosition();
 
+  if (NameInfo.BasenameRange.second != NameInfo.ArgumentsRange.first)
+    NameInfo.TemplateArgumentsRange = {NameInfo.BasenameRange.second,
+                                       NameInfo.ArgumentsRange.first};
----------------
charles-zablit wrote:

Oh sorry, yes:

```diff
diff --git a/lldb/source/Core/DemangledNameInfo.cpp 
b/lldb/source/Core/DemangledNameInfo.cpp
index 95db524fba2d..021016d7c072 100644
--- a/lldb/source/Core/DemangledNameInfo.cpp
+++ b/lldb/source/Core/DemangledNameInfo.cpp
@@ -80,6 +80,20 @@ void TrackingOutputBuffer::finalizeQualifiersEnd() {
   NameInfo.QualifiersRange.second = getCurrentPosition();
 }

+void TrackingOutputBuffer::updateTemplateArgumentsStart() {
+  if (!shouldTrack())
+    return;
+
+  NameInfo.TemplateArgumentsRange.first = getCurrentPosition();
+}
+
+void TrackingOutputBuffer::updateTemplateArgumentsEnd() {
+  if (!shouldTrack())
+    return;
+
+  NameInfo.TemplateArgumentsRange.second = getCurrentPosition();
+}
+
 void TrackingOutputBuffer::finalizeStart() {
   if (!shouldTrack())
     return;
@@ -92,9 +106,9 @@ void TrackingOutputBuffer::finalizeStart() {
   if (NameInfo.BasenameRange.second == 0)
     NameInfo.BasenameRange.second = getCurrentPosition();

-  if (NameInfo.BasenameRange.second != NameInfo.ArgumentsRange.first)
-    NameInfo.TemplateArgumentsRange = {NameInfo.BasenameRange.second,
-                                       NameInfo.ArgumentsRange.first};
+  // if (NameInfo.BasenameRange.second != NameInfo.ArgumentsRange.first)
+  //   NameInfo.TemplateArgumentsRange = {NameInfo.BasenameRange.second,
+  //                                      NameInfo.ArgumentsRange.first};

   assert(!shouldTrack());
   assert(canFinalize());
@@ -228,7 +242,9 @@ void TrackingOutputBuffer::printLeftImpl(const NestedName 
&N) {
 void TrackingOutputBuffer::printLeftImpl(const NameWithTemplateArgs &N) {
   N.Name->print(*this);
   updateBasenameEnd();
+  updateTemplateArgumentsStart();
   N.TemplateArgs->print(*this);
+  updateTemplateArgumentsEnd();
 }

 } // namespace lldb_private
```

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