clayborg added a comment.

m_has_children was used to represent what was in the DWARF in the byte that 
follows the DW_TAG. m_empty_children was used for DIEs that said they had 
children but actually only contain a single NULL tag. It is fine to not 
differentiate between the two.



================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h:282
                          // If zero this die has no parent
-  uint32_t m_sibling_idx : 31, // How many to add to "this" to get the sibling.
-      m_empty_children : 1;    // If a DIE says it had children, yet it just
-                               // contained a NULL tag, this will be set.
+  uint32_t m_sibling_idx; // How many to add to "this" to get the sibling.
   uint32_t m_abbr_idx : DIE_ABBR_IDX_BITSIZE,
----------------
We might want to move m_has_children where m_empty_children used to be and give 
a bit back to m_abbr_idx by increasing DIE_ABBR_IDX_BITSIZE by 1. We have a few 
bits to spare in m_sibling_idx since it is the number of dies to advance by to 
get to the sibling. Since DIEs at the very least are a few bytes, having a 2GB 
advance instead of 4GB is plenty.


================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h:285-287
+                                            // It is zero if a DIE says it had
+                                            // children, yet it just contained
+                                            // a NULL tag.
----------------
This comment is wrong. The DWARF encodes if a DIE has children in the 
.debug_info, but we may override this value if the DIE only contains an NULL 
terminating DIE.

It should read something like:
```
// If it is zero, then the DIE doesn't have children, or the 
// DWARF claimed it had children but the DIE only contained 
// a single NULL terminating child.
```




Repository:
  rLLDB LLDB

https://reviews.llvm.org/D53321



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to