================
@@ -401,12 +399,28 @@ static CompilerContext GetContextEntry(DWARFDIE die) {
     return ctx(CompilerContextKind::Typedef);
   case DW_TAG_base_type:
     return ctx(CompilerContextKind::Builtin);
+  case DW_TAG_class_type:
+  case DW_TAG_structure_type:
+  case DW_TAG_union_type: {
+    CompilerContextKind kind = die.Tag() == DW_TAG_union_type
+                                   ? CompilerContextKind::Union
+                                   : CompilerContextKind::ClassOrStruct;
+    llvm::StringRef name = die.GetName();
+    if (!complete_template_names || name.contains('<'))
----------------
labath wrote:

That's part of it -- some names (I'm not sure which ones, but they're probably 
involve non-type template arguments and things like that) don't have enough 
information to reconstruct the original name. The other part is that we really 
don't know whether debug info contains simplified template names or not (even 
for names that could be simplified). There's no CU-level attribute or anything 
that would convey that information.

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

Reply via email to