================
@@ -362,6 +369,18 @@ void ManualDWARFIndex::IndexUnitImpl(DWARFUnit &unit,
         set.namespaces.Insert(ConstString(name), ref);
       break;
 
+    case DW_TAG_member: {
+      // In DWARF 4 and earlier `static const` members of a struct, a class or 
a
+      // union have an entry tag `DW_TAG_member`, and are also tagged as
+      // `DW_AT_declaration`, but otherwise follow the same rules as
+      // `DW_TAG_variable`.
+      bool parent_is_class_type = false;
+      if (auto parent = die.GetParent())
+        parent_is_class_type = DWARFDIE(&unit, parent).IsStructUnionOrClass();
----------------
labath wrote:

No, because `parent` is a DWARFDebugInfoEntry, not a DWARFDIE :P

It's a (not entirely fortunate) result of trying to avoid any high level 
(expensive) operations, and of the fact that lldb's DWARFDebugInfoEntry (unlike 
the llvm) fork actually provides some functionality instead of being a simple 
data holder.

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

Reply via email to