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]

Re: dwarflint


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]