Re: [RFA/dwarf2] Small problem scanning line table for included files

Joel Brobecker
2004-07-30T19:01:05Z

Hello Jim,

Thanks for your careful review.

> This is getting a bit hairy.

I can't agree more. I was just fixated on having an exact fix, as
opposed to an approximate fix where we assume that the compiler is
not going to do anything meaningless.

> It would be simpler to simply delete the "!decode_for_pst_p && "
> towards the top of dwarf2_decode_lines, and always create a psymtab
> for the first file. This could conceivably result in creating
> psymtabs for source files that have no line number entries in them,
> but that's probably not going to be a big deal.
>
> (To be picky, we can make that mistake now anyway: consider what would
> happen if the line number program contained two consecutive
> DW_LNS_set_file instructions: the first file gets a psymtab, even
> though it's never used.)
>
> To get everything exactly right, we would need to delay setting a file
> table entry's included_p flag until just before we actually call
> record_line.

I think you are right. Looking for DW_LNS_set_file was a mistake, since
it is not fullproof as you demonstrated above. I looked at the dwarf3
(draft7) reference again, and setting that flag everytime we need to
record a line seems to be the perfect place to do (it's a bit
complicated to explain my resoning, I was concerned mostly because
I was a bit fuzzy on certain details which were cleared by rereding
the dwarf3 reference document).

I shall give this a try, and report back.

--
Joel