On Thu, 2013-10-03 at 12:40 -0700, Josh Stone wrote:
When dwarf_formref_die can't find a sig8 in the hash, it walks
__libdw_intern_next_unit, and was then adding those to the hash.
However, if dwarf_offdie_types is called earlier, which also uses that
next_unit, then they are missed from the hash (and never revisited).
This patch makes __libdw_intern_next_unit do the sig8 hash insert, so no
type unit is ever missed.
Signed-off-by: Josh Stone <jistone(a)redhat.com>
Looks good to me. Thanks for adding a testcase.
+2013-10-03 Josh Stone <jistone(a)redhat.com>
+
+ * dwarf_formref_die.c (dwarf_formref_die): Don't hash the sig8 here.
+ * libdw_findcu.c (__libdw_intern_next_unit): Since this never revisits
+ a unit, make sure to always hash the sig8 here, so none are missed.
BTW. Since the commit message already explains they why, you can keep
the ChangeLog message to just say the what (Don't hash the sig8 here.
Always hash the sig8 here.) to keep it short and sweet.
Thanks,
Mark