This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Roland McGrath wrote: >>> * a has_children DIE has no DW_AT_sibling (suboptimal) >> This didn't cross my mind. I've put the check in, and it seems to be >> quite a common case: 14K violations in that hefty OOo library, and 850 >> violations in libX11.so. Do we really want to flag this? Maybe make it >> a strict warning only? > > The last child cannot have a DW_AT_sibling. If it had one, it would have > to point to the null entry terminating its parent's child list. But a > proper ref form can't point to a null DIE, so it can't be done. This is > unfortunate, since this optimization is useful for the last child as for > any other. Unfortunately, we can't presume DW_AT_sibling is always there, > so we can't take absence of DW_AT_sibling as an indicator this is the last > child. (We could had an extension, a flag attribute DW_AT_last_sibling. > But let's not worry about that idea for now.) Ah, true. It turns out that all the exceptions that I've seen were these cases. I moved the test from abbrev loading to DIE loading, and also added a check that the last DIE in chain doesn't have a sibling attribute. With the the rewritten test, files once again seem to be flawless. PM
Attachment:
signature.asc
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |